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

Другие вопросы по тегам