ASP.NET MVC3区域操作视图位置

时间:2012-11-02 15:33:32

标签: asp.net-mvc-3

我第一次在MVC遇到过。 我在区域“管理”和控制器在那里“新闻”与行动“列表”。

在调试中我得到了

的断点
public ActionResult List()
{
    return View(); // Breakpoint
}

我到达那里

但引擎找不到查看“列表”

我收到了错误:

The view 'List' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/News/List.cshtml
~/Views/News/List.vbhtml
~/Views/Shared/List.cshtml
~/Views/Shared/List.vbhtml

查看位置区域/管理/新闻/ List.cshtml中的退出

为什么Razor不会将区域名称粘贴到视图视图位置?

更新

我找到了解决方案: ASP.NET MVC Default routes accessible via area routes

Route route = Routes.MapRoute(name, url, defaults, constraints, namespaces);
route.DataTokens["area"] = AreaName;

1 个答案:

答案 0 :(得分:0)

当您在控制器中调用View()方法时,ASP.NET MVC希望您具有相应操作的匹配视图。所以基本上告诉你,你必须在项目的List.cshtmlList.vbhtml文件夹中有一个名为Views/Shared(或Views/News/)的文件。 (您的控制器名为NewsController,按照惯例,搜索视图的名称您可以转到http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/intro-to-aspnet-mvc-3查看其工作原理。

区域是一个MVC功能,用于组织应用程序上的代码,但您可能缺少一些配置。 Read this了解更多信息。