Несколько флажков в бритве всегда возвращают ложь
У меня была эта проблема: несколько флажков в бритве (с помощью 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>
}
Сообщения - это список сообщений, который имеет:
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");
}
Так я получаю фальшивый бул и пустую строку. Зачем?
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);
}