首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CheckBox实现

CheckBox实现
EN

Stack Overflow用户
提问于 2015-03-23 03:52:50
回答 1查看 66关注 0票数 1

我想为我的Online_Ballot设置一个复选框,其中一个复选框包含选民可以投票给特定候选人的候选人。

下面是我的密码。

CandidatesViewModel.cs

代码语言:javascript
复制
public class CandidatesViewModel
{
    public IEnumerable<candidates> AvailableCandidates { get;set; }
    public IEnumerable<Candidates> SelectedCandidates { get; set; }
    public PostedCandidates PostedCandidates { get; set; }
}

public class PostedCandidates
{
    public string[] CandidatesId { get; set; }
}

Candidates.cs

代码语言:javascript
复制
public class Candidates
{
    public int candidates_info_id { get; set; }
    public string candidates_fullname { get; set; }
    public object Tags { get; set; }  
    public bool IsSelected { get; set; }
}

控制器

代码语言:javascript
复制
public ActionResult Votation(PostedCandidates PostedCandidates)
{
    return View();
}

视图

代码语言:javascript
复制
@Html.CheckBoxListFor(x => x.PostedCandidates.CandidatesId,  
                  x => x.AvailableCandidates,      
                  x => x.candidates_info_id,                    
                  x => x.candidates_fullname,                
                  x => x.SelectedCandidates)  

但是,当我试图运行这段代码时,会显示一个错误:

'System.Collections.Generic.IEnumerable‘不包含'PostedCandidates’的定义,也找不到接受'System.Collections.Generic.IEnumerable‘类型的第一个参数的扩展方法'PostedCandidates’(您缺少使用指令还是程序集引用?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-23 04:17:29

您正在声明IEnumerable<Online_Ballot.Models.CandidatesViewModel>类型的模型,并将其用作实例而不是集合。

您需要将模型声明更改为以下内容(假设您要从控制器传递要查看的CandidatesViewModel类型的单个实例):

代码语言:javascript
复制
@model Online_Ballot.Models.CandidatesViewModel

或者,您可以将复选框列表生成更改为类似的内容(假设您将集合从控制器传递到视图,并且该集合只有一个元素)。

代码语言:javascript
复制
@Html.CheckBoxListFor(x => x.FirstOrDefault().PostedCandidates.CandidatesId,  
              x => x.FirstOrDefault().AvailableCandidates,      
              x => x.FirstOrDefault().candidates_info_id,                    
              x => x.FirstOrDefault().candidates_fullname,                
              x => x.FirstOrDefault().SelectedCandidates)

尽管我建议您使用变更模型声明。

更新

我还注意到,您没有将视图模型的实例传递给视图。

代码语言:javascript
复制
public ActionResult Votation(PostedCandidates PostedCandidates)
{
    CandidatesViewModel vm = new CandidatesViewModel();
    //process or fill your viewmodel here.
    return View(vm);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29203021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档