【发布时间】:2014-06-29 15:50:43
【问题描述】:
我的控制器中有这个:
public ActionResult Index()
{
var viewModels = _dataSyncService.Get().Select(provider => new IndexViewModel
{
Selected = false, Provider = provider
}).ToList();
return View(viewModels);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(IEnumerable<IndexViewModel> viewModels)
{
//Breakpoint on this to check viewModels
}
视图模型:
public class IndexViewModel
{
public bool Selected { get; set; }
public IDataSyncProvider Provider { get; set; }
}
还有我的 Index.cshtml:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<button type="submit" class="btn blue">Trigger Selected</button>
@foreach (var sync in Model)
{
<tr>
<td>
@Html.CheckBoxFor(s => sync.Selected)
</td>
<td>@sync.Provider.FriendlyName</td>
</tr>
}
}
但是我的模型被回发了,viewModels 总是返回为空。我读了很多关于必须将 ID 分配给复选框等的信息,但我认为这就是 Html.CheckBoxFor 的用途。
我确信我会在某个时候为此自责,但请提供一些指导。
【问题讨论】:
标签: asp.net-mvc forms postback