Шаблон редактора MVC3 для списка, который не заполняется - PullRequest
1 голос
/ 27 сентября 2011

Проблема: при загрузке EditorTemplate для UserModel список 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]

role

role1 [x] проверенная роль для 1

role2[x] проверенная роль для 2

role3 [x] проверенная роль для 3

Ответы [ 3 ]

0 голосов
/ 28 сентября 2011

Я ожидаю, что проблема заключается в определении UserRoles как отдельного класса.Попробуйте изменить свойство UserRoles в классе UserSearchModel на:

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

MVC ищет шаблон для класса UserRoles.Поскольку шаблон предназначен для класса UserRole, MVC не может найти какой-либо шаблон.

ОБНОВЛЕНИЕ

Кроме того, я упустил из виду, что вы используете EditorFor дляМодель UserRoles.Вы должны использовать EditorForModel примерно так:

@Html.EditorForModel(m => m.UserRoles)
0 голосов
/ 28 сентября 2011

Скорее всего, эта проблема вызвана тем, что всплывающее окно решетки редактора Telerik Mvc обслуживает User EditorTemplate.

Я проверил за пределами всплывающего окна сетки, чтобы найти, что шаблоны работают должным образом. Я закрою этот вопрос и повторно задаю правильный вопрос в другой записи.

0 голосов
/ 28 сентября 2011

Вы должны просто создать список типов, а не выводить свой собственный тип.

...