【问题标题】:MVC3 Single _ViewStartMVC3 单 _ViewStart
【发布时间】:2011-12-11 03:35:50
【问题描述】:

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

【问题讨论】:

标签: c# asp.net-mvc


【解决方案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 文件夹中以作为开始的位置。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 他指的是在区域之间共享文件,而不是在视图之间。区域有自己的布局和自己的 Views 文件夹。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-22
      • 2012-07-12
      • 1970-01-01
      • 2012-01-15
      相关资源
      最近更新 更多