Pregunta

Estoy cargando una vista parcial con una llamada AJAX:

public ActionResult LoadServerForm()
        {
            //data stuff

            ViewData["ApplicationID"] = appID.ToString();
            ViewData["Servers"] = ServersList(appServerRep.Session, null, appServers);
            return PartialView("Application_AddServer");
        }

Esto funciona muy bien, pero estoy tratando de escapar de las cadenas ViewData mágicos. He intentado hacer la vista hereda parcial del mismo modelo de vista como el "anfitrión" de la página, pero el objeto modelo es nula cuando intento esto en la vista parcial:

<%= Html.HiddenFor(model=>model.Application_Key, Model.Application_Key) %>

¿Hay una manera de pasar la página principal modelo de vista hacia abajo en el PartialView AJAX-cargado o debería estar buscando un enfoque diferente en total?

¿Fue útil?

Solución

Cuando return PartialView("Application_AddServer");, usted tiene que pasar el modelo:

return PartialView("Application_AddServer", model);

Como se trata de una petición AJAX, es una invocación de acciones controlador separado, y el nuevo PartialView no sabe sobre el modelo de la página solicitante. Vas a tener que reconstruirlo, ya sea de lo que sea el origen de datos original es o de datos que se pasan a la petición AJAX.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top