У меня есть следующая модель в MVC:
public class IndexViewModel
{
public SubViewModel SubViewModel { get; set; }
}
В моем представлении индекса я делаю следующее, чтобы отобразить редактор для SubViewModel
:
Index.cshtml
@model IndexViewModel
@Html.EditorFor(m => m.SubViewModel)
В моем файле SubViewModel.cshtml
я пытался сделать следующее:
EditorTemplates / SubViewModel.cshtml
@model SubViewModel
@Html.EditorForModel("SubViewModelForm")
По сути, я хочу разделить мой редактор на две части.Первый шаблон редактора создаст форму, а внутренний - все поля формы.Проблема в том, что внутреннее представление никогда не отображается.
Как будто MVC понимает, что я уже звонил в EditorFor для этой модели, и мешает мне сделать это снова.Есть ли способ, которым я могу заставить это работать?
РЕДАКТИРОВАТЬ
Я думал, что напечатал то, что происходило ясно, но я не думаю.
Я хочу использовать два шаблона для отображения одной модели.В первом шаблоне я хочу отобразить форму и кнопку отправки, а также несколько контейнерных элементов.
Во втором шаблоне я хочу отобразить все поля формы.
Индекс.cshtml @ Html.EditorFor (m => m.SubViewModel) -> отобразить форму и контейнер
SubViewModel.cshtml @ Html.EditorForModel ("SubViewModelForm") -> отобразить поля формы
Проблема в том, что второй вызов (@ Html.EditorForModel ("SubViewModelForm")), похоже, ничего не делает.Он никогда не отображает никаких тегов.MVC игнорирует его.
Причина, по которой я хочу сделать это, заключается в том, что я собираюсь опубликовать эту форму с помощью вызова ajax.Если все в порядке (состояние модели корректно), я хочу вернуть данные JSON в представление.Если модель недействительна, я хочу вернуть частичное представление только с полями формы.Таким образом, мне не нужно снова подключать все мои обработчики событий.Я могу просто заменить поля формы вместо всего представления.