2013-02-18 25 views
16

Mi piacerebbe essere in grado di passare una stringa nella mia vista parziale dalla vista che chiama - questa stringa sarà diversa a seconda della vista da cui viene resa la vista parziale. Qualcosa di simile a questo:Passaggio di una stringa in una vista parziale in MVC4

@{ Html.RenderPartial("PartialViews/_BreadcrumbsPartial", "New Item");} 

O

@{ Html.RenderPartial("PartialViews/_BreadcrumbsPartial", Model.Name);} 

Come posso accedere a questo secondo parametro dall'interno della vista parziale, visto che non ho etichettato tale parametro? Mi piacerebbe evitare di passare l'intero modello se possibile, e solo fare riferimento a quella stringa direttamente.

risposta

32

tuo parziale deve legarsi ad una stringa

esempio, al primo posto questo:

@model string 

per accedere al valore della tua parziale, utilizzare @Model al posto di param stringa

+0

Ho provato a farlo, ma non so come fare riferimento nel corpo del mio PartialView. Ho aggiunto esattamente quello che hai nella parte superiore del mio partial e provato @string nel corpo ma sta cercando un identificatore. – RobVious

+0

@RobVious, ho aggiornato la risposta. In pratica, usa @ Model come stringa. –

+0

È fantastico. Grazie Dave. – RobVious

0

Si potrebbe utilizzare TempData (o possibilmente ViewData) che dovrebbe essere accessibile nelle visualizzazioni successive. Tuttavia, credo che puoi anche passare le variabili direttamente, magari tramite una stringa di query.

Si prega di vedere questa domanda così asp.net mvc parameter from page to a partial view

+1

Davvero non voglio usare ViewData - i dati sono già disponibili da ViewModel nella mia vista. – RobVious

Problemi correlati