У меня есть частичное представление с 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)?