首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MVC3.0 3.0中的CheckboxList

MVC3.0 3.0中的CheckboxList
EN

Stack Overflow用户
提问于 2011-02-02 16:27:02
回答 2查看 45.1K关注 0票数 52

如何在asp.net MVC中创建checkboxList,然后使用checkboxList处理事件

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-02 16:32:05

你可以有一个视图模型:

代码语言:javascript
复制
public class MyViewModel
{
    public int Id { get; set; }
    public bool IsChecked { get; set; }
}

控制器:

代码语言:javascript
复制
public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new[] 
        {
            new MyViewModel { Id = 1, IsChecked = false },
            new MyViewModel { Id = 2, IsChecked = true },
            new MyViewModel { Id = 3, IsChecked = false },
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(IEnumerable<MyViewModel> model)
    {
        // TODO: Handle the user selection here
        ...
    }
}

视图(~/Views/Home/Index.cshtml):

代码语言:javascript
复制
@model IEnumerable<AppName.Models.MyViewModel>
@{
    ViewBag.Title = "Home Page";
}
@using (Html.BeginForm())
{
    @Html.EditorForModel()
    <input type="submit" value="OK" />
}

和对应的编辑器模板(~/Views/Home/EditorTemplates/MyViewModel.cshtml):

代码语言:javascript
复制
@model AppName.Models.MyViewModel
@Html.HiddenFor(x => x.Id)           
@Html.CheckBoxFor(x => x.IsChecked)

现在,当您提交表单时,您将获得一个值列表,并且对于每个值,无论它是否被选中。

票数 63
EN

Stack Overflow用户

发布于 2011-12-17 12:53:29

还有一种更简单的方法--从这里使用定制的@Html.CheckBoxList()扩展:http://www.codeproject.com/KB/user-controls/MvcCheckBoxList_Extension.aspx

使用示例(带有Razor视图引擎的MVC3视图):

代码语言:javascript
复制
@Html.CheckBoxList("NAME",                  // NAME of checkbox list
                   x => x.DataList,         // data source (list of 'DataList' in this case)
                   x => x.Id,               // field from data source to be used for checkbox VALUE
                   x => x.Name,             // field from data source to be used for checkbox TEXT
                   x => x.DataListChecked   // selected data (list of selected 'DataList' in thiscase),
                                            // must be of same data type as source data or set to 'NULL'
                  )
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4872192

复制
相关文章

相似问题

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