Asp.net MVC не отображает редактирование шаблона - PullRequest
0 голосов
/ 30 сентября 2011

У меня есть классы:

public class PersonDetailsModel
{
    public string FistName
    {
        get;
        set;
    }

    public string LastName
    {
        get;
        set;
    }

    public string Email
    {
        get;
        set;
    }
}

public class RegisterCoupleModel
{
    public PersonDetailsModel Groom
    {
        get;
        set;
    }

    public PersonDetailsModel Bride
    {
        get;
        set;
    }


    public string UrlKeyword
    {
        get;
        set;
    }

    public string ReCaptcha
    {
        get;
        set;
    }
}

папка Shared> EditorTemplates

PersonDetailsModel.cshtml

@model BindSolution.AndMarried.ViewModel.PersonDetailsModel

<div class="editor-label">
    @Html.LabelFor(m => m.FistName)
</div>
<div class="editor-field">     
    @Html.EditorFor(m => m.FistName)
    @Html.ValidationMessageFor(m => m.FistName)
</div>

<div class="editor-label">
    @Html.LabelFor(m => m.LastName)
</div>
<div class="editor-field">     
    @Html.EditorFor(m => m.LastName)
    @Html.ValidationMessageFor(m => m.LastName)
</div>

<div class="editor-label">
    @Html.LabelFor(m => m.Email)
</div>
<div class="editor-field">     
    @Html.EditorFor(m => m.Email)
    @Html.ValidationMessageFor(m => m.Email)
</div>

В моем представлении:

@Html.EditorForModel()

Отображаются только поля UrlKeyword и ReCapcha!

Почему Asp.net MVC не использует шаблоны в общей папкедля отображения моего вложенного типа PersonDetailsModel?

1 Ответ

1 голос
/ 30 сентября 2011

Знаешь, ты мог бы просто отредактировать другой вопрос. :)

В любом случае, я не думаю, что это сработает. Вам нужно либо контролировать весь шаблон самостоятельно, либо позволить MVC делать все самостоятельно. (я могу ошибаться)

Создать шаблон редактора для RegisterCoupleModel:

@model BindSolution.AndMarried.ViewModel.RegisterCoupleModel

@Html.EditorFor(model => model.Groom)
@Html.EditorFor(model => model.Bride)
@Html.EditorFor(model => model.UrlKeyword)
@Html.EditorFor(model => model.ReCapcha)

Или вы можете использовать атрибут [UIHint("PersonDetailsModel"] в свойствах Groom и Bride в ViewModel.

Прочтите раздел замечаний в EditorForModel , чтобы узнать, как все это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...