2010-08-22 3 views
4

La vue dans '~/Areas/SomeArea/Views/List/Index.cshtml' doit dériver de ViewPage, ViewPage, ViewUserControl ou ViewUserControl.Pourquoi les zones ASP.NET MVC3 et les vues Razor produisent-elles cette erreur?

La structure du projet est à peu près par défaut. Il y a une zone appelée SomeArea. Il a un contrôleur unique appelé List. Il ne fait rien, sauf:

public ActionResult Index() 
{ 
    return View("~/Areas/SomeArea/Views/List/Index.cshtml"); 
} 

La vue ressemble à:

@inherits System.Web.Mvc.WebViewPage<dynamic> 

@{ 
    View.Title = "Index"; 
    LayoutPage = "~/Views/Shared/_Layout.cshtml"; 
} 

<h2>Index</h2> 

J'ai essayé de vider la totalité de la partie du fichier en partie et rien ne semble aider. Si je crée un contrôleur et que je vois à l'extérieur de la zone, cela fonctionne très bien. Est-il possible que le moteur de vue rasoir par défaut ne supporte pas les zones en ce moment?

Éditer: Les zones sont enregistrées.

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with parameters 
     new { controller = "Random", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
    ); 
} 

protected void Application_Start() 
{ 
    AreaRegistration.RegisterAllAreas(); 
    RegisterGlobalFilters(GlobalFilters.Filters); 
    RegisterRoutes(RouteTable.Routes); 
} 

public override void RegisterArea(AreaRegistrationContext context) 
{ 
    context.MapRoute(
     "SomeArea_default", 
     "SomeArea/{controller}/{action}/{id}", 
     new { controller = "List", action = "Index", id = UrlParameter.Optional } 
    ); 
} 

Répondre

Questions connexes