Asp.Net MVC3 Razor帮助,正在调用错误的_ViewStart.cshtml

时间:2011-04-06 18:06:05

标签: asp.net-mvc layout asp.net-mvc-3 razor

我有一个控制器'QUnitController',然后我在Views文件夹'QUnit'中有一个文件夹。在该文件夹中,我有一个_ViewStart.cshtml,它编码为使用此文件夹中的_Layout文件作为QUnit文件夹中的Views。出于某种原因,正在调用Views文件夹中的_ViewStart.cshtml,而不是QUnit文件夹中的_ViewStart.cshtml。我在这做错了什么?我以为在文件夹中有这个文件会覆盖路由中的文件。我可以在_ViewStart文件中放置断点,我看到我想要的断点永远不会被击中。谁能告诉我我做错了什么?

这是控制器代码。 QUnitController.cs

 public class QUnitController : Controller
{
    public ActionResult LoadView(string viewName)
    {
        return View(viewName);
    }
}

这是路线Views / _ViewStart.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";

}

这是qunit Views / QUnit / _ViewStart.cshtml

@{
    Layout = "~/Views/QUnit/_Layout.cshtml";

}

为什么我没有调用正确的_ViewStart?任何人都可以帮我纠正这个问题吗?我感谢任何人的帮助或提示。

谢谢,
〜在圣地亚哥

2 个答案:

答案 0 :(得分:4)

执行每个父文件夹中的所有_ViewStart文件;最外面的一个先执行。

您的~/Views/QUnit/_ViewStart.cshtml应该最后执行。

您确定自己的观点来自正确的文件夹吗?

答案 1 :(得分:0)

每个区域都调用自己的_ViewStart.cshtml。所以在多区域上下文中,我们需要将〜/ View中的_ViewStart.cshtml复制到〜/ Areas / YourArea / Views。