如何使用Html.HiddenFor解决RazorEngine问题

问题描述

asp.net mvc4应用程序,目标是.NET Framework 4.5.2,可与VS 2019一起使用

我在@Html.HiddenFor(x => x.InvoiceId)的剃须刀页面上收到 CS0012错误

error message

指向缺少的程序集引用“ System.Core”。

奇怪的是,仅在打开页面时,VS解决方案资源管理器才会弹出错误,但是 解决方案可以编译并正确运行!

我在项目中没有引用“ System.Core”,从我了解到的内部引用中也没有引用。 因此,我按照错误消息中的建议更改了PublicKeyToken的密钥,但这并没有消除错误并导致运行时错误

然后,我使用了Serge

发布的解决方法
<input type="hidden" value="@Html.AttributeEncode(Model.InvoiceId)" id="InvoiceId" name="InvoiceId" />

正常工作。

但是我想找出导致此错误的原因以及如何消除

我们将不胜感激帮助和建议。

解决方法

我通过warabino找到了这个答案:

我所做的是我从C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.6.1 \ System.Core.dll复制了该dll,然后将这些lib粘贴到了项目箱中。 稍后您会看到在您的项目中,该dll是自动添加到引用中的。

我做了相同的事情(使用C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ v3.5中的dll)和解决了该问题

但是,我不知道该dll(及其引用)是否曾经存在于我的项目中,并且在进行一些更新后迷失了或变得必需。