È necessario disporre di una vista separata per ciascuna azione del controller?
-
04-07-2019 - |
Domanda
Esiste una relazione obbligatoria tra un'azione del controller e una vista? Voglio dire, è necessario avere una vista fisica (pagina aspx) per ogni azione all'interno di una classe controller?
Soluzione
Non esiste alcuna relazione obbligatoria tra l'azione del controller e una vista. Il controller è responsabile della restituzione di un ActionResult. Il modo più comune per farlo è utilizzare una vista, ma non sono cablati. Una vista potrebbe essere condivisa tra i Controller, ad esempio.
Anche un controller, può gestire la richiesta da solo, restituendo un reindirizzamento o un risultato JSON, o persino il proprio HTML (anche se non consigliato).
Altri suggerimenti
Puoi anche restituire cose come ContentResult in un'azione:
public ContentResult Index()
{
return Content("Foobar!");
}
Se questo fosse chiamato direttamente, sarebbe simile a:
Response.Write("Foobar!");
Response.End();