ASP.NET MVC und stark typisierte partialview
-
23-09-2019 - |
Frage
Ich bin eine Teilansicht mit einem AJAX-Aufruf laden:
public ActionResult LoadServerForm()
{
//data stuff
ViewData["ApplicationID"] = appID.ToString();
ViewData["Servers"] = ServersList(appServerRep.Session, null, appServers);
return PartialView("Application_AddServer");
}
Dies funktioniert gut, aber ich versuche, von Magie Viewdata Saiten wegzukommen. Ich versuchte, die Teilansicht erbt aus dem gleichen Ansichtsmodell als „Hosting“ Seite zu machen, aber das Model-Objekt ist null, wenn ich dies in der Teilansicht versuchen:
<%= Html.HiddenFor(model=>model.Application_Key, Model.Application_Key) %>
Gibt es eine Möglichkeit, die Haupt-Seite Ansichtsmodell nach unten in die AJAX-geladen PartialView oder soll ich überhaupt für einen anderen Ansatz suchen passieren?
Lösung
Wenn Sie return PartialView("Application_AddServer");
, Sie haben das Modell weitergeben müssen:
return PartialView("Application_AddServer", model);
Da dies eine AJAX-Anforderung ist, dann ist es ein separater Controller-Aktion Aufruf und die neue PartialView weiß nicht, über das Modell der anfordernden Seite. Sie werden es rekonstruieren, entweder von was auch immer Ihre ursprünglichen Datenquelle oder von Daten mit dem AJAX-Request übergeben.