【发布时间】:2014-05-20 10:53:39
【问题描述】:
我目前正在实施的 MVC 操作存在一些问题。简而言之,我有一个用户表,其中分配了角色。每个用户的角色数量可以在 1-3 之间,我不确定在编辑它们时如何在 MVC 的 POST 操作中反映这一点。为了让角色进入视图,我使用了一个包含角色名称和 ID 的类 AccountMapping 列表:
public ActionResult EditUser(User user, EditUserModel model)
{
// Omitted model assignments
model.AccountMappings = _reportUsersRepository.GetAccountMapping(user.UserId).ToList();
return View(model);
}
在视图中(使用 Razor):
@foreach (var item in @Model.AccountMappings)
{
<div>
<p>@item.Target_Type.Replace('_', ' ')</p>
<input name="@item.Role_Name" value="@item.Target_Id" type="number" placeholder="Role Id" required />
</div>
}
我将如何构建 POST 操作以考虑这些输入?我对 POST 操作使用相同的模型,并且我知道 AccountMapping 列表将不包含回发结果。我不确定是否使用 FormsCollection 方法,因为您需要知道键的名称才能检索值。我错过了什么明显的东西吗?
非常感谢。
【问题讨论】:
-
如果您使用
for (int i = 0; i < Model.AccountMappings.Count(); i++)而不是foreach,使用@Html.EditorFor(x=>Model.AccountMappings[i])等将正常工作。
标签: c# asp.net-mvc razor http-post