【发布时间】:2017-11-08 22:16:19
【问题描述】:
我遇到了这个问题:Multiple checkboxes in razor (using foreach)
我尝试了它的解决方案。它对我不起作用。所以希望你们能提供帮助。
我的观点:
@for(int i = 0; i < Model.Messages.Count; i++)
{
<tr>
<td>
@using (Html.BeginForm("UpdateMessage", "Home", FormMethod.Post))
{
@Html.CheckBoxFor(x => Model.Messages[i].Activated, new {onchange = "this.form.submit();"});
@Html.HiddenFor(x => x.Messages[i].Text);
}
</td>
<td>@Model.Messages[i].Text</td>
<td><button>Delete</button></td>
</tr>
}
Messages 是一个消息列表,其中包含:
public string Text { get; set; }
public bool Activated { get; set; }
控制器 POST 方法:
[HttpPost]
public ActionResult UpdateMessage(Domain.Entities.Message message)
{
repository.UpdateMessage(message);
return RedirectToAction("Settings_Message", "Home");
}
所以我得到一个 false bool 和一个空字符串。为什么?
【问题讨论】:
-
你的代码没有意义。您视图中的模型与 POST 方法中的模型不匹配。以及为什么视图中有多个表单 - 用户一次只能提交一个表单。并触发提交单击复选框 id 可怕的做法
-
让你在一个带有提交按钮的表单中循环,并在 POST 方法中更改模型以匹配视图中的模型(除了将参数的名称更改为除模型中的属性)并允许用户编辑多个项目并在一个操作中发布然后全部返回
标签: asp.net-mvc razor checkboxfor