ASP.NET RazorGenerator "WriteAttribute" не определен
Я использую RazorGenerator https://github.com/RazorGenerator/RazorGenerator чтобы перенести свое меню в файл DLL, чтобы я мог поделиться им между несколькими проектами. В этих представлениях у меня есть цикл foreach, который должен генерировать такой список:
@foreach (var myItem in MyClass.Instance.Elements) {
<li>
<img src="@myItem.Icon" />
</li>
}
Но я не могу скомпилировать их: файл MyView.generated.cs, сгенерированный RazorGenerator, создает следующую строку для тега img:
WriteAttribute("src", Tuple.Create(" src=\"", 1038), Tuple.Create("\"", 1057)
Вот проблема, потому что я получил ошибку, что "WriteAttribute" не определен. Я не могу найти много информации об этом методе, похоже, что это метод от RazorGenerator.
Странно то, что я тестировал тот же код раньше в тестовом проекте, потому что впервые использую RazorGenerator. Там это работает с той же петлей, но я не могу найти никаких отличий. Оба проекта имеют одинаковые ссылки и сборки также в одной версии. Я только узнал, что WriteAttribute() происходит от WebPageExecutionBase.
Как я могу исправить проблему?
2 ответа
Проверив каждый пакет в обоих проектах, я обнаружил, что NuGet-пакет Microsoft.ASP.NET.WebPages был установлен в устаревшей версии. Не могу понять, почему, потому что я использовал кнопку "Обновить все" в NuGet-менеджере проекта, как я это делал в тестирующем проекте, и никаких ошибок не было показано. Я обновил пакет, используя NuGet-Console, до последней версии 3.1.2 на момент написания этого поста, и теперь он работает как ожидалось.
Не устанавливайте для параметра Build Action значение none, как предложено выше, поскольку ваша локальная копия не будет генерировать правильный сгенерированный файл.cs