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

本文关键字:视图 区域 访问 MVC | 更新日期: 2023-09-27 18:17:38

我被困在一个简单的问题,我不知道如何解决这个问题。

没有找到视图类别或其主目录,或者没有视图引擎支持搜索的位置。以下地点是搜索:
~/视图/ShoppingCart/Category.aspx
~/视图/ShoppingCart/Category.ascx
~/视图/共享/Category.aspx
~/视图/共享/Category.ascx
~/视图/ShoppingCart/Category.cshtml
~/视图/ShoppingCart/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);
  }

和my area 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}
     );
}

让我知道我做错了什么

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

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

答案是添加正确的项目类型(参见此答案)并从项目的上下文菜单。之后,我把所有的东西都移动到一个新创建的区域,它工作了。

所以答案是MVC不仅创建了所有的文件夹,而且还更新了它的路由