1

问题:当我为 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] ischecked 角色为 1

role2 [x] ischecked 角色 2

role3 [x] ischecked 角色为 3

4

3 回答 3

0

我希望问题在于将其定义UserRoles为单独的类。尝试将类中的属性更改UserRolesUserSearchModel

public List<UserRole> UserRoles { get; set; }

UserRolesMVC 正在为该类搜索模板。由于模板是针对UserRole类的,MVC 找不到任何模板。

更新

另外,我忽略了您正在使用EditorForUserRoles 模型。你应该EditorForModel像这样使用:

@Html.EditorForModel(m => m.UserRoles)
于 2011-09-27T20:39:18.973 回答
0

这个问题看起来更有可能是由于 Telerik mvc 网格的弹出窗口提供了 User EditorTemplate 。

我已经在网格弹出窗口之外进行了测试,发现模板可以按预期工作。我将关闭这个问题并在另一个条目中重新提出正确的问题。

于 2011-09-28T19:34:18.393 回答
0

您应该只创建类型 List 而不是派生自己的类型。

于 2011-09-27T20:09:34.377 回答