作为嵌入式资源的 C# View 在构建后始终显示旧 View

标签 c# asp.net-mvc-2 embedded-resource asp.net-mvc-views

我有一个 MVC2 网站,它使用来自其他程序集的 View 。 为此,我将 View 标记为“嵌入式资源”

我能够看到 View ,但现在,当我更改 View 时,我再也看不到更改了。

我将 View 称为嵌入式资源的方式与此类似:

return View("~/Extension/Extensions.MyExtension.dll/" +
    "Extensions.MyExtension.Views.MyItem.Details.ascx", entity);

在这种情况下,“扩展”部分表示 View 必须作为嵌入式资源加载。以下部分表示包含 View 的程序集。最后一部分是 View 的位置(包括命名空间)。

为什么在我更改了 View 的全部内容后仍然显示来自早期 View 的数据。甚至取消将 View 标记为嵌入式资源。

为了确保我拥有最新的 Extensions.myExtension.dll 程序集,我将该程序集复制到网站的 bin 文件夹中。我用反射器检查了组件,看组件中是否有正确的 View 。这是正确的观点,但我仍然看到旧观点。

更改 View 的名称可以暂时解决问题,但对我来说不是很好的解决方案。当我将 View 的名称更改回原来的名称时,会显示旧 View 。

最佳答案

在我看来,如果数据被缓存并且 DLL 文件未被视为已更改,则几乎是这样。您的 web.config 中是否有属性“optimizeCompilations”?检查它是否设置为 false。否则(如果为真)仅重新编译更改的 DLL 文件。

更多信息可以在 this 上找到MSDN 页面。

例如:

<compilation debug="true" defaultLanguage="c#" targetFramework="4.0"
    optimizeCompilations="false">

关于作为嵌入式资源的 C# View 在构建后始终显示旧 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4659059/

相关文章:

c# - Linq 和 C#,跳过记录,转换错误

c# - 从 C# 运行 Sql Server 代理作业

visual-studio - 在 IIS 6 上部署 Asp.Net MVC 2/C# 4.0 应用程序

c# - 从非 WPF 代码访问 WPF XAML 资源

c# - 将 C# 解决方案中的嵌入式资源存储在 *.zip 存档中是否有效?

c# - 如何检查驱动程序代码签名策略是否已启用并且实际有效?

C# { } 运算符

asp.net - 我创造了有史以来最糟糕的标签汤(ASP.NET MVC 2)

jquery - 在 jQuery 中只执行一次操作

java - 无法实例化 Image java 类型?