我如何动态绑定mvc3 razor中的复选框中的数据

时间:2014-02-02 18:03:42

标签: asp.net-mvc-3 razor

  • 我在mvc3 razor工作。
  • 我希望剃刀视图中的复选框输入存储在数据库中的所有类别。
  • 我怎么能绑它?请帮忙

1 个答案:

答案 0 :(得分:0)

假设您的模型有一个字段来保存所有复选框文本,例如。

   public class MyClass
{
public string SelectedOptions {get;set;}

public List<String> CheckList {get;set;}

}

编写控制器操作方法,如

public ActionResult ShowCheckBoxList()
{
   MyClass Options= new MyClass();
   Options.CheckList  = new List<String>();
   // Here populate the CheckList  with what ever value you have to
   // either if you are getting it from database or hardcoding

   return View(Options);
}

您必须通过右键单击上述方法创建视图,然后选择“添加视图”。通过从dropDown中选择MyClass模型,确保您保持名称与方法名称相同,并且您可以选择MyDlass模型,脚手架模板是可选的,根据您的方案使用它。

现在,在您的视图中,您可以将此填充的复选框文本用作

 @foreach(var optionText in Model.CheckList)
{
   @Html.CheckBox(@Model.SelectedOptions, false, new {Name = "SelectedOptions", Value = @optionText})
    @Html.Label(@optionText , new { style = "display:inline;" })

}

将其保留在表单中,并确保您还指定要在表单的帖子上调用的Action。

使你的动作名称与上一个动作相同(在帖子之前是[GET]意思),现在我们为[POST]创建相同的方法

[HTTPPOST]
public ActionResult ShowCheckBoxList(MyClass data) // here you will get all the values from UI in data variable 
{
    //data.SelectedOptions  will have all the selected values from checkbox

}