Qual è lo scopo e quando è necessario utilizzare SurfaceController o RenderMvcController? Sembra che non ci sia davvero nulla che io possa fare con un SurfaceController che non posso fare con RenderMvcController. Ad esempio, sto pensando in modo specifico alla gestione dell'invio del modulo. Con RenderMvcController posso fare:Umbraco SurfaceController vs RenderMvcController
public class HomeController : RenderMvcController
{
private IUmbracoMapper _umbracoMapper;
public HomeController()
{
_umbracoMapper = new UmbracoMapper();
}
[HttpGet]
public ActionResult Home()
{
HomeViewModel viewModel = new HomeViewModel();
_umbracoMapper.Map(CurrentPage, viewModel);
return CurrentTemplate(viewModel);
}
[HttpPost]
public ActionResult Home(HomeViewModel viewModel)
{
// Handle form submission
}
}
Questo sembra più in linea con MVC per me, soprattutto perché posso usare pacchetti come UmbracoMapper per mappare il nodo Umbraco corrente a un modello di vista e passare che a mio modo di vedere? Perché e quando dovrei usare un SurfaceController?
Se fossi così inclinato, potrei usare RenderMvcController per dirottare ogni percorso per un dato nodo, dandomi più controllo sulla mia applciation, un po 'più come una pura app ASP.NET MVC. È una buona cosa?
Grazie per la risposta. Ho iniziato a pensarci dopo aver letto il post sul blog di Sebaastian Janssen su cultiv.nl riguardo al dirottamento del percorso (qual è questa rotta di Umbraco che dirotta tutto?). Mi chiedo perché dovresti usare un SurfaceController quando puoi ottenere gli stessi risultati in un approccio più puro (nell'accezione ASP.NET MVC). Forse non c'è una risposta tecnicamente corretta ed è una questione di preferenza ..? – Iain