-1

我有这个问题:剃刀中的多个复选框(使用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");
}

所以我得到一个错误的布尔值和一个空字符串。为什么?

4

1 回答 1

1

您可以为此使用以下代码。它会起作用的。

@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);                
}
于 2017-11-08T14:16:19.883 回答