【问题标题】:ASP.NET MVC3 Area action view locationASP.NET MVC3 区域操作视图位置
【发布时间】:2012-11-02 15:33:32
【问题描述】:

我第一次在 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

在位置 Areas/Administation/News/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;

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

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

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

    【讨论】:

    • 我经常使用区域,但我怎么说这种行为对我来说是新的,我不知道问题出在哪里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 2011-12-07
    相关资源
    最近更新 更多