Sto costruendo una pagina di profilo che avrà un numero di sezioni relative a un particolare modello (Tenant) - AboutMe, MyPreferences - questo tipo di cose. Ognuna di queste sezioni sarà una vista parziale, per consentire gli aggiornamenti parziali delle pagine usando AJAX.MVC 4 - come posso passare i dati del modello a una vista parziale?
Quando faccio clic su un ActionResult
nel TenantController, sono in grado di creare una vista fortemente tipizzata ei dati del modello vengono passati alla vista fine. Non riesco a raggiungere questo obiettivo con visualizzazioni parziali.
Ho creato una vista parziale _TenantDetailsPartial
:
@model LetLord.Models.Tenant
<div class="row-fluid">
@Html.LabelFor(x => x.UserName) // this displays UserName when not in IF
@Html.DisplayFor(x => x.UserName) // this displays nothing
</div>
Ho poi ho una visione MyProfile
che renderà menzionato viste parziali:
@model LetLord.Models.Tenant
<div class="row-fluid">
<div class="span4 well-border">
@Html.Partial("~/Views/Tenants/_TenantDetailsPartial.cshtml",
new ViewDataDictionary<LetLord.Models.Tenant>())
</div>
</div>
Se mi avvolgo il codice all'interno del DIV in _TenantDetailsPartial
all'interno di @if(model != null){}
non viene visualizzato nulla sulla pagina, quindi suppongo che sia passato un modello vuoto alla vista.
Come mai quando creo una vista fortemente tipizzata da un ActionResult
l'utente nella "sessione" viene passato alla vista? Come può passare l'utente nella 'sessione' ad una vista parziale che non viene creata da un ActionResult
? Se mi manca qualcosa sul concetto, per favore, spiega.
sono davvero provato che in precedenza e non ha funzionato! Non devo ricostruire la mia soluzione ... Grazie, funziona. – MattSull