Asp.net mvc razor中的多个复选框始终返回false
我有一个问题: 我尝试了它的解决方案。这对我来说不管用。希望你们能帮忙 我的看法是:Asp.net mvc razor中的多个复选框始终返回false,asp.net-mvc,razor,checkboxfor,Asp.net Mvc,Razor,Checkboxfor,我有一个问题: 我尝试了它的解决方案。这对我来说不管用。希望你们能帮忙 我的看法是: @for(int i = 0; i < Model.Messages.Count; i++) { <tr> <td> @using (Html.BeginForm("UpdateMessage", "Home", FormMethod.Post)) { @Html.CheckBo
@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>
}
控制员职务方法:
[HttpPost]
public ActionResult UpdateMessage(Domain.Entities.Message message)
{
repository.UpdateMessage(message);
return RedirectToAction("Settings_Message", "Home");
}
所以我得到一个假布尔值和一个空字符串。为什么?您可以使用以下代码进行此操作。它会起作用的
@using (Html.BeginForm("UpdateMessage", "Home", FormMethod.Post))
{
@Html.CheckBox("Activated", Model.Messages[i].Activated, new { onchange = "this.form.submit();" });
@Html.Hidden("Text", Model.Messages[i].Text);
}
你是我今天的英雄。这管用!注意:如果不使用“For”项,
BeginForm
可以放入一个
和一个循环中。这会生成无效的html,这是解决糟糕设计的糟糕方法。您编写的代码毫无意义。视图中的模型与POST方法中的模型不匹配。为什么视图中有多个表单?用户一次只能提交一个表单。要触发提交,请单击使用复选框id可怕的做法,但您可以使用提交按钮在单个表单中循环,并在POST方法中更改模型以匹配视图中的模型(将参数名称更改为模型中属性名称以外的任何名称除外)并允许用户编辑多个项目,然后在一个操作中发布所有项目
@using (Html.BeginForm("UpdateMessage", "Home", FormMethod.Post))
{
@Html.CheckBox("Activated", Model.Messages[i].Activated, new { onchange = "this.form.submit();" });
@Html.Hidden("Text", Model.Messages[i].Text);
}