问题:当我为UserModel加载EditorTemplate时,UserRoles列表不会生成UserRole编辑器列表。
我的模特:
public class UserSearchModel
{
[ScaffoldColumn(false)]
public Guid UserId { get; set; }
[DisplayName("User Name")]
public string UserName { get; set; }
[DisplayName("User Roles")]
public UserRoles UserRoles { get; set; }
}
public partial class UserRoles : List<UserRole>
{
}
public class UserRole
{
public string RoleName { get; set; }
public bool IsChecked { get; set; }
public string Description { get; set; }
}
我的编辑器模板:
@model eGate.BackOffice.WebClient.Model.UserModel
@Html.LabelFor(m=>m.UserName)
@Html.EditorFor(m=>m.UserName)
<h1>roles</h1>
@Html.EditorFor(m=>m.UserRoles)
@model eGate.BackOffice.WebClient.Model.UserRole
@Html.LabelFor(m=>m.RoleName)
@Html.LabelFor(m=>m.IsChecked)
@Html.CheckBoxFor(m=>m.IsChecked)
@Html.LabelFor(m=>m.Description)
实际输出看起来像:
用户名[someuser]
角色
预期输出:
用户名[someuser]
角色
基于role1 [x]缺血 角色1
role2所 [x]缺血 角色2
role3 [x]缺血 角色3
答案 0 :(得分:0)
您应该只创建List类型而不是派生自己的类型。
答案 1 :(得分:0)
我希望问题是将UserRoles
定义为一个单独的类。尝试将UserRoles
类中的属性UserSearchModel
更改为:
public List<UserRole> UserRoles { get; set; }
MVC正在搜索UserRoles
类的模板。由于模板用于UserRole
类,因此MVC无法找到任何模板。
<强>更新强>
另外,我忽略了您使用EditorFor
用于UserRoles模型。您应该像EditorForModel
那样使用:
@Html.EditorForModel(m => m.UserRoles)
答案 2 :(得分:0)
这个问题看起来更可能是由于telerik mvc网格的popUp窗口正在提供User EditorTemplate这一事实。
我已在网格弹出窗口外测试,发现模板按预期工作。我将结束这个问题并在另一个条目中重新提出正确的问题。