无法访问MVC 3中的区域内的视图

时间:2011-12-10 10:07:29

标签: c# asp.net-mvc-3 model-view-controller

我陷入了简单的问题,我不知道如何解决这个问题。

  

未找到视图类别或其主文件,或者视图引擎不支持搜索的位置。以下地点是   搜索:
  〜/查看/我的购物/ Category.aspx
  〜/查看/我的购物/ Category.ascx
  〜/查看/共享/ Category.aspx
  〜/查看/共享/ Category.ascx
  〜/查看/我的购物/ Category.cshtml
  〜/查看/我的购物/ Category.vbhtml
  〜/查看/共享/ Category.cshtml
  〜/查看/共享/ Category.vbhtml

我有一个名为ShoppingCartArea的区域,我有视图(Category.cshtml)和控制器。但我不确定它是如何引用主视图文件夹的。

Global.asax中

 public static void RegisterRoutes(RouteCollection routes)
 {
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

      routes.MapRoute(
          "Default", // Route name
          "{controller}/{action}/{id}", // URL with parameters
          new { controller = "ShoppingCart", action = "Category", id = UrlParameter.Optional }, // Parameter defaults
          );

  }

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

和我的区域registration.cs

public override void RegisterArea(AreaRegistrationContext context)
{
     context.MapRoute(
         "ShoppingCartArea_default",
         "ShoppingCartArea/{controller}/{action}/{id}",
         new { controller = "ShoppingCart", action = "Category", id = UrlParameter.Optional },
                new[] { ShoppingCartAppMVC.Areas.ShoppingCartArea.Controllers}
     );
}

Lemme知道我做错了什么

1 个答案:

答案 0 :(得分:1)

可能是因为您手动添加了区域而遇到了这个问题。最近,我一直在重建旧的WebForms应用程序,并慢慢将其转换为MVC。我没有将MVC类型添加到项目中,只添加了所需的文件夹等。不幸的是,我遇到了和你一样的问题。

答案是添加正确的项目类型(see this answer)并添加区域 项目的上下文菜单。在那之后,我把所有东西都搬到了一个新建的区域 - 它起作用了。

所以答案是MVC不仅会创建所有文件夹,还会更新其路由。