【问题标题】:ASP.NET MVC4 Layout pages with VirtualPathProvider带有 VirtualPathProvider 的 ASP.NET MVC4 布局页面
【发布时间】:2012-11-02 09:55:31
【问题描述】:

自从从 ASP.NET MVC3 升级到 MVC4 后,我遇到了一个问题。该应用程序的大部分控制器和视图嵌入到主项目引用的 dll 中,并且该解决方案依赖于标准 VirtualPathProvider,它检查请求的视图是否存在于 dll 中,如果存在则返回它。

升级到 MVC4 后,布局页面的请求不再通过 VirtualPathProvider,导致整个应用程序崩溃。包括部分视图在内的所有其他视图均已正确处理并从程序集中加载。

有没有其他人在升级到 MVC4 后遇到过类似的问题?

【问题讨论】:

    标签: asp.net .net asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    在没有看到您的错误消息的情况下,我会好好猜测一下。找到项目中的所有 web.config 文件,并确保引用最新版本的 MVC 4。

    【讨论】:

    • 我浏览了所有配置文件并更新了所有内容,并使用 NuGet 更新了每个参考。其他一切都很完美,只是布局页面似乎没有通过MVC3中的VirtualPathProvider。
    • 您是否也检查了视图文件夹下的 web.config 文件?所有程序集都应引用相同的版本。您可以尝试将此作为快速测试:备份您的项目,递归删除除根目录之外的所有 web.configs,并确保使用完全相同的 MVC dll(我的意思是来自确切位置)。彻底清理并重建您的项目。当心 .NET 4.5,它的程序集绑定很神秘,您可能必须非常明确。如果错误仍然存​​在,请在此处发布。
    • 除上述建议外,请在构建步骤后打开编译视图。它将在您的视图中标记可能导致路由失败的错误:stackoverflow.com/questions/383192/compile-views-in-asp-net-mvc 这只是编译检查,而不是二进制构建。
    猜你喜欢
    • 2016-11-25
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多