我正在为List中的每个对象添加复选框。当我尝试将值返回给控制器时,列表为空,我只得到复选框bool。
有人可以向我解释如何正确地将List从视图传递给控制器。
我用表单尝试过,但我不确定这是否正确。
我在谷歌上搜索了很多,并在stackoverflow上发现了类似的帖子,但我找不到帮助我的帖子。
查看
@model List<WCFasp.net.WCF.Person>
@{
ViewBag.Title = "ShowView";
}
@using (Html.BeginForm("Check", "Home"))
{
for (int i = 0; i < Model.Count(); i++)
{
<p>@Html.CheckBoxFor(m => m[i].IsChecked) @Html.DisplayFor(m => m[i].Name)</p>
}
<input id="submit" type="submit" value="submit" />
}
控制器
[HttpPost]
public ActionResult Check(List<WCF.Person> selectedpersonlist)
{
//Here I get the empty list
return View("ShowSelectedView");
}
人
[DataContract]
public class Project
{
[DataMember]
public string Name { get; set; }
[DataMember]
public bool IsChecked { get; set; }
public Project(string name, bool isChecked)
{
this.Name = name;
this.IsChecked = isChecked;
}
}
最后的小问题。我投票是因为我不是专业人士还是其他原因?
答案 0 :(得分:2)
如果您希望在列表中填充更多属性,则可以使用隐藏字段来存储信息:
for (int i = 0; i < Model.Count(); i++)
{
@Html.HiddenFor(m => m[i].Name)
<p>@Html.CheckBoxFor(m => m[i].IsChecked) @Html.DisplayFor(m => m[i].Name)</p>
}