【发布时间】:2018-05-24 14:53:18
【问题描述】:
我有一个这样的扩展用户类:
public class User : IdentityUser
{
public string Nombre { get; set; }
public string Apellidos { get; set; }
public int DepartamentoID { get; set; }
public Departamento Departamento { get; set; }
}
在我的编辑视图中,我有这个字段定义:
<div class="form-group">
@Html.LabelFor(model => model.Roles.FirstOrDefault().RoleId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(m => m.Roles.ElementAtOrDefault(0).RoleId, (SelectList)ViewBag.RoleList, "Seleccionar un rol", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Roles.FirstOrDefault().RoleId)
</div>
</div>
当我发送表单时,角色集合是空的。
为什么 Binder 不将角色添加到 Roles 集合中?
问候和感谢。
我尝试添加更多信息以回应 Rajesh 的 cmets。
在获取操作中,模型包含角色的信息,并且视图正确显示了它。下拉列表显示可用角色,并且用户的角色显示为选中状态。当我在视图中选择另一个不同的角色并发送表单时,在 Post 操作中,模型的 Roles 集合不再包含信息。
不知道怎么调试Binder的工作
【问题讨论】:
-
调试并检查为什么角色为空,您是否在获取请求中获取模型?如果那么请正确检查它是否具有约束力。此外,我们只能在您在此处添加的代码中看到用户模型,其他代码如角色和所有,请添加它们以便于检查。
-
不能用单独的 ViewModel 代替 POCO Entity 类吗?
-
赢了,当然。我可以使用 ViewModel。但我的问题是,为什么Binder不自动填写信息?
标签: c# asp.net-mvc entity-framework