我迷失了列表框的提交,其中选择了多个主题并带有一组复选框。
如果那是一个WebForm项目,对我来说不会有问题。
哪些最佳实践和一些代码示例显示在ASP.NET MVC2中正确提交表单,其中包含一组复选框和包含多个所选项目的列表框?
以下是表格的样本:
类别: - 一组复选框
主题: - 具有多个属性的列表框(multiple =“multiple”)
答案 0 :(得分:1)
一如既往地定义视图模型:
public class MyModel
{
public bool Check1 { get; set; }
public bool Check2 { get; set; }
public IEnumerable<SelectListItem> ListItems { get; set; }
public string[] SelectedItems { get; set; }
}
接下来是控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyModel
{
Check1 = false,
Check2 = true,
ListItems = new SelectList(new[]
{
new { Id = 1, Name = "item 1" },
new { Id = 2, Name = "item 2" },
new { Id = 3, Name = "item 3" },
}, "Id", "Name")
};
return View(model);
}
[HttpPost]
public ActionResult Index(MyModel model)
{
// TODO: Process the model
// model.SelectedItems will contain a list of ids of the selected items
return RedirectToAction("index");
}
}
最后是View:
<% using (Html.BeginForm()) { %>
<div>
<%: Html.LabelFor(x => x.Check1) %>
<%: Html.CheckBoxFor(x => x.Check1) %>
</div>
<div>
<%: Html.LabelFor(x => x.Check2) %>
<%: Html.CheckBoxFor(x => x.Check2) %>
</div>
<div>
<%: Html.ListBoxFor(x => x.SelectedItems, Model.ListItems) %>
</div>
<input type="submit" value="OK" />
<% } %>