È possibile visualizzare una vista da un altro controller?Visualizzare una vista da un altro controller in ASP.NET MVC
Ad esempio, ho una vista CategoriesController
e una Category/NotFound.aspx
. Mentre nello CategoriesController
, posso facilmente restituire View("NotFound")
.
Ora dire che ho un ProductsController
e un'azione e vista per aggiungere un prodotto. Tuttavia, questa azione richiede che abbiamo una categoria per aggiungere il prodotto a. Ad esempio, Products/Add/?catid=10
.
Se non sono in grado di trovare la categoria in base a catid
, voglio mostrare la NotFound
vista dal controller Categorie invece di creare una vista CategoryNotFound
sotto il controller prodotti.
È possibile o sto strutturando le cose nel modo sbagliato? C'è un buon modo per farlo?
Grazie, sembra la soluzione che dovrei usare. Mi chiedo ancora se è possibile visualizzare una vista da un altro controller. Immagino che questo violi alcune regole in MVC? – dtc
Nella situazione descritta sopra, sì, dovresti usare la cartella condivisa. –
Sì, anche questo è possibile. Se si esegue visualizzazione di ritorno ("~/Visualizzazioni/Ovunque/SomeDir/MyView.aspx") È possibile restituire qualsiasi visualizzazione desiderata. Ciò non viola nessuna regola particolare in quanto tale, tuttavia, ASP.Net MVC è interamente basato sulla "convenzione sulla congfigurazione". In altre parole, il framework è progettato per funzionare automaticamente usando alcune convenzioni e dovresti utilizzarlo dove possibile. – womp