Ho un sito in MVC4 utilizzando le aree. In una certa zona (consente di chiamare Area), ho un controllore (Controller) con queste azioni:Controller MVC. Esegui con aree
public ActionResult Index()
{
return View();
}
public ActionResult OtherAction()
{
return View("Index");
}
Questa grande opera se faccio un semplice redirect A Area/Controller/OtherAction come questo:
return RedirectToAction("OtherAction", "Controller", new { area = "Area" });
ma ho bisogno (check here why) per fare un redirect in questo modo:
RouteData routeData = new RouteData();
routeData.Values.Add("area", "Area");
routeData.Values.Add("controller", "Controller");
routeData.Values.Add("action", "OtherAction");
ControllerController controller = new ControllerController();
controller.Execute(new RequestContext(new HttpContextWrapper(HttpContext.ApplicationInstance.Context), routeData));
E in questo caso non funziona. Dopo l'ultima riga, il metodo OtherAction viene eseguito e poi in ultima riga di questo codice che genera questa eccezione:
La vista 'indice' o il suo padrone non è stato trovato o nessun motore di visualizzazione supporta le posizioni ricercate . Le seguenti posizioni sono stati cercati :
~/Vista/Controller/Index.aspx
~/Vista/Controller/Index.ascx
~/Vista/Shared/Index.aspx
~/Vista/shared/Index.ascx
~/Vista/controller/Index.cshtml
~/Vista/controller/Index.vbhtml
~/views/Shared/Index.cshtml
~/Vista/Shared/Index.vbhtml
Perché succede questo e come posso risolvere il problema?