ASP.NET MVC и строго типизированное частичное представление

StackOverflow https://stackoverflow.com/questions/2343970

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top