(MVC 5) Обновить DropDownList для выбранного значения при обновлении частичного представления - PullRequest
0 голосов
/ 05 июня 2018

У меня есть частичное представление с DropDownListFor-Element.

Частичное представление

@model Person

<h4>Show me OrganizationID: @Model.Organization_ID</h4>
@Html.DropDownListFor(model => model.Organization_ID, new SelectList(ViewBag.AllOrganizations, "ID", "Name"))

Теперь при обновлении частичного просмотра через JQuery и измените "Organization_ID""модели в методе действия контроллеров, выбранный элемент DropDownListFor не будет изменен после обновления, даже если организация существует в DropDownList!

JQuery (в Create.cshtml)

var url = '@Html.Raw(Url.Action("ReloadPerson", "Home"))';
$('#divPerson').load(url, $('#formPerson').serializeArray());

Контроллер

public ActionResult ReloadPerson([Bind(Include = "ID,  [...], Organization_ID")] Person person)
{
      ViewBag.AllOrganizations = _ecmManager.GetAllOrganizations ();
      person.Organisation_ID = (Guid)TempData["Organization_ID"];

      return PartialView("Person", person);
 }

Метод действия через TempData устанавливает новый идентификатор в свойстве моего объекта и отправляет его обратно в модель частичного просмотра.Заголовок h4 показывает меня после обновления нового идентификатора организации, но мой DropDownListFor-Element не выбирает организацию, которую он получает из модели.

Проверена функциональность DropDownListFor:

public ActionResult Create()
{
    ViewBag.AllOrganizations = _ecmManager.GetAllOrganisationen();

    return View(new Person() { Organization_ID = _ecmManager.GetOrganizationByID(new Guid("E2A9C501-1E53-4074-9B4B-04C693FB753A")).ID });
}

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

Итак, как я могу обновить свой DropDownListFor-Element после частичного обновления представления (без перезагрузки всей страницы через JQuery)?

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