ASP.NET MVC и строго типизированное частичное представление
-
23-09-2019 - |
Вопрос
Я загружаю частичное представление с помощью вызова AJAX:
public ActionResult LoadServerForm()
{
//data stuff
ViewData["ApplicationID"] = appID.ToString();
ViewData["Servers"] = ServersList(appServerRep.Session, null, appServers);
return PartialView("Application_AddServer");
}
Это прекрасно работает, но я пытаюсь уйти от волшебных строк ViewData.Я попытался наследовать частичное представление от той же ViewModel, что и страница «хостинг», но объект модели имеет значение null, когда я пытаюсь сделать это в частичном представлении:
<%= Html.HiddenFor(model=>model.Application_Key, Model.Application_Key) %>
Есть ли способ передать ViewModel главной страницы в PartialView, загруженный AJAX, или мне вообще следует искать другой подход?
Решение
Когда ты return PartialView("Application_AddServer");
, вам необходимо передать модель:
return PartialView("Application_AddServer", model);
Поскольку это запрос AJAX, это отдельный вызов действия контроллера, и новый PartialView не знает о модели запрашивающей страницы.Вам придется восстановить его либо на основе исходного источника данных, либо на основе данных, переданных с помощью запроса AJAX.