MVC3单_ViewStart

时间:2011-12-11 03:35:50

标签: c# asp.net-mvc

如何对所有视图和区域/视图使用一个唯一的_viewstart.cshtml?我已经将_viewstart移动到我的站点的根目录,但是当我这样做时发生了这个错误“无法将'ASP._ViewStart_vbhtml'类型的对象强制转换为'System.Web.WebPages.StartPage'。”。我的.configs位于/ views文件夹中。有什么问题?

3 个答案:

答案 0 :(得分:1)

  

如何对所有视图和区域/视图使用一个唯一的_viewstart.cshtml?

不确定你是说每个区域的1个文件还是1个文件。

如果您只想使用单个_ViewStart文件,则必须将其放在Views文件夹中。 这就是启动新的MVC3项目的时候。

如果您想要每个区域的文件,请在此处阅读此帖:

How do I specify different Layouts in the ASP.NET MVC 3 razor ViewStart file?

  

“无法将类型为'ASP._ViewStart_vbhtml'的对象强制转换为键入   'System.Web.WebPages.StartPage'。“

这看起来像是在将Razor与Webforms混合使用。如果您使用混合的视图引擎,请检查Global.asax是否添加了两个视图引擎。

protected void Application_Start()
{
    ...
    ViewEngines.Engines.Add(new WebFormViewEngine());
    ViewEngines.Engines.Add(new RazorViewEngine());
    ...
}

尝试将_ViewStart文件放入Views文件夹中,因为它应该是应该的位置。

答案 1 :(得分:0)

我很确定你不能把_ViewStart放在你网站的根目录中。 ViewEngine在Views文件夹中查找ViewStart。因此,共享同一ViewStart的唯一方法是使用硬链接并使同一文件出现在两个文件夹中。

答案 2 :(得分:0)

对于要共享的文件,它不应该位于站点的根文件夹中。它应该在Views / Shared文件夹中。