Шаблон редактора / Частичное представление в шаблоне редактора, не использующее данные просмотра - PullRequest
0 голосов
/ 15 мая 2019

У меня есть страница, на которой вы можете ввести до двух записей контактной информации. Оба раздела ввода должны быть идентичными, поэтому, естественно, я хотел использовать шаблон редактора для простоты использования.

Однако контактная информация содержит динамический раздел. Все, что показано в этом разделе, определяется входом в контактную информацию. Я использую частичное представление для динамического отображения этого раздела.

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

Есть ли способ обеспечить передачу модели представления в частичное представление в шаблоне редактора?

Я попытался изменить частичное представление на шаблон редактора, но это не работает.

Вот просмотр страницы:

@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, так как я могу перейти к следующей странице без изменений.

...