Domanda

Sto caricando una vista parziale con una chiamata AJAX:

public ActionResult LoadServerForm()
        {
            //data stuff

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

Questa grande opera, ma sto cercando di scappare da stringhe Viewdata magici. Ho provato a fare la vista eredita parziale dalla stessa ViewModel come pagina "ospitare", ma l'oggetto del modello è nullo quando provo a questo nella vista parziale:

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

C'è un modo per passare alla pagina principale ViewModel giù nella PartialView AJAX-caricato o dovrei essere alla ricerca di un approccio del tutto diverso?

È stato utile?

Soluzione

Quando si return PartialView("Application_AddServer");, devi passare il modello:

return PartialView("Application_AddServer", model);

Poiché si tratta di una richiesta AJAX, è un'invocazione azione controller separato, e il nuovo PartialView non conosce il modello della pagina richiesta. Dovrete ricostruire, sia da qualunque sia la vostra fonte di dati originale è o da dati passati con la richiesta AJAX.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top