我正在尝试将复选框值发回给控制器。该复选框无法识别复选框中的更改,并继续发送我在生成页面时获得的值。
有人能解释我错在哪里吗? 我看了几个例子,不幸的是他们没有满足我的要求。
我的班级
public class SomeClass
{
public Guid Id { get; set; }
public string Name { get; set; }
public bool IsEnabled { get; set; }
}
我的控制器
[HttpPost]
public ActionResult Index(Guid id,bool check = false)
{
try
{
_importService.EnableDisable(id, check);
return RedirectToAction("Index");
}
catch (Exception ex)
{
LogError(ex.Message, ex);
throw;
}
}
Razor Code
<html>
<head>
<title>Values</title>
</head>
<body>
<div>
<h4>Current Values</h4>
<table>
@foreach (var m in Model)
{
<tr>
<td><a href="@Url.Action("ExtraInfo", "MyAction", new {id = m.Id})">@m.Name</a></td>
<td>
@using (Html.BeginForm("Index", "MyAction", new { id = m.Id, check = m.IsEnabled }, FormMethod.Post, null))
{
@Html.HiddenFor(m => SomeClass.Id)
@Html.CheckBoxFor(m => SomeClass.IsEnabled)
<input type="submit" value="Save" />
}
</td>
</tr>
}
</table>
</div>
</body>
</html>