У меня есть страница, на которой вы можете ввести до двух записей контактной информации. Оба раздела ввода должны быть идентичными, поэтому, естественно, я хотел использовать шаблон редактора для простоты использования.
Однако контактная информация содержит динамический раздел. Все, что показано в этом разделе, определяется входом в контактную информацию. Я использую частичное представление для динамического отображения этого раздела.
Проблема в том, что всякий раз, когда вызывается это частичное представление, я пытаюсь передать модель для страницы, чтобы определить правильное отображение, но когда я выполняю код, передаваемая модель пуста.
Есть ли способ обеспечить передачу модели представления в частичное представление в шаблоне редактора?
Я попытался изменить частичное представление на шаблон редактора, но это не работает.
Вот просмотр страницы:
@Html.EditorFor(m => m.Contact1)
@Html.EditorFor(m => m.Contact2)
Шаблон редактора для контакта:
@Html.BsRequiredRadioButtonListFor(m => m.Role, AppLists.GetRoleList(), "Role",
includeDynamicBehavior: true, postAction: $"{Url.Action("RoleTextBox")}", container: "txtRoleBoxes")
@Html.BsRequiredTextBoxFor(m => m.Name)
<div id="txtRoleBoxes">
@Html.PartialFor(m => m, "Partial/RoleTextBox")
</div>
Контроллер, вызывающий частичное представление:
public ActionResult RoleTextBox(ContactModel model)
{
ModelState.Clear();
return PartialView("Partial/RoleTextBox");
}
Частичное представление:
@if (Model.Role == eWaiver.Models.Roles.Officer.ToString() || Model.Role == eWaiver.Models.Roles.Other.ToString())
{
@Html.BsRequiredTextBoxFor(m => m.Title)
}
else if(Model.Role == eWaiver.Models.Roles.PaidPreparer.ToString())
{
@Html.BsRequiredTextBoxFor(m => m.EFIN, ContactInformation.EFINLabel, helpText: ContactInformation.EFINHelpText)
}
Проходя по частичному, я обнаружил, что Model.Role - пустая строка Это должен быть любой выбор, который сделан в Контактной информации. Похоже, по какой-то причине частичное представление не использует данные просмотра. Я знаю, что у меня есть данные модели View, так как я могу перейти к следующей странице без изменений.