Как исправить проблему RazorEngine с Html.HiddenFor

Приложение asp.net mvc4, ориентированное на .NET framework 4.5.2, работающее с VS 2019

Я получаю ошибку CS0012 на странице с бритвой по адресу @Html.HiddenFor(x => x.InvoiceId)

сообщение об ошибке

указывая на отсутствующую ссылку на сборку System.Core.

Странно то, что ошибка появляется только при открытии страницы в обозревателе решений VS, но решение компилируется и запускается без ошибок!

У меня нет ссылки на «System.Core» в моем проекте, и из сообщений я узнал, что на него есть внутренние ссылки. Поэтому я изменил ключ для PublicKeyToken, как было предложено в сообщении об ошибке, но это не устранило ошибку и вызвало ошибку времени выполнения.

Затем я использовал обходной путь, опубликованный Serge

<input type="hidden" value="@Html.AttributeEncode(Model.InvoiceId)" id="InvoiceId" name="InvoiceId" />

который работает правильно.

Но я хотел бы узнать, что вызывает эту ошибку и как ее удалить.

Мы будем благодарны за помощь и предложения.


person Manu    schedule 06.10.2020    source источник
comment
Здесь есть дополнительная информация: Тип определен в сборке, на которую нет ссылки, как найти причину?   -  person Jackdaw    schedule 07.10.2020


Ответы (1)


Я нашел этот ответ через варабино:

Я скопировал эту dll из C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.6.1 \ System.Core.dll и вставил эту библиотеку в корзину своего проекта. Позже вы увидите, что внутри вашего проекта dll автоматически добавляется в ссылку.

Я сделал то же самое (используя dll из C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ v3.5) и это решило проблему.

Однако я не знаю, присутствовала ли библиотека dll (и ссылка на нее) в моем проекте раньше и потерялась или стала необходимой после некоторых обновлений, которые я сделал.

person Manu    schedule 07.10.2020