Ho una vista parziale (controllo) utilizzata in più pagine di visualizzazione e devo passare il nome della vista corrente al controller, quindi se c'è, ad es. errori di convalida, posso ri-disegnare la vista originale.Recupera il nome della vista corrente in ASP.NET MVC?
Un modo soluzione per farlo sarebbe (nei metodi controllore)
var viewName = "Details"; // or whatever
ViewData["viewName"] = viewName;
return(View(viewName, customer));
e quindi nella stessa parziale, renderlo come
<input type="hidden" name="viewName"
value="<%=Html.Encode(ViewData["viewName"])%>" />
domanda è - c'è qualche proprietà o sintassi che posso usare per recuperarlo direttamente invece di impostarlo dal controller? Ho provato l'ovvio:
<input type="hidden" name="viewName"
value="<%=Html.Encode(this.Name)%>" />
ma questo non funziona. Cosa mi manca qui?
Grazie.
Questo è un po 'di stumper. Ho pensato che dovrebbe essere possibile dal momento che è possibile ottenere il nome della vista dal risultato dell'azione durante il test del controller ... ma non sono chiaro su come recuperarlo dall'interno della Vista stessa. In attesa di risposta ... – womp