Редактирование шаблонов бритвы в Visual Studio 2010: почему все ошибки вывода типов? - PullRequest
2 голосов
/ 01 декабря 2011

У меня строго типизированное представление с объявлением @model:

@model MyViewModel

При использовании таких методов расширения в моих представлениях Razor:

@Html.TextBoxFor(m => m.Foo)

Visual Studio показывает ошибкивот так:

Аргументы типа для метода 'System.Web.Mvc.Html.InputExtensions.TextBoxFor(System.Web.Mvc.HtmlHelper , System.Linq.Expressions.Expression>) 'не может быть выведено из использования.Попробуйте явно указать аргументы типа.

Это только ошибки, отображаемые в окне редактора;представление хорошо воспроизводится во время выполнения.

Это происходит для каждого , или я могу что-то сделать, чтобы редактор Razor работал лучше?

Ответы [ 3 ]

4 голосов
/ 06 декабря 2011

Благодаря этому ответу я нашел решение. В моем файле web.config после указания атрибута targetFramework в разделе конфигурации system.web/compilation все эти неприятные предупреждения исчезли. Ранее targetFramework не было указано. Как ни странно, Visual Studio не просто использует целевую среду вашего проекта:

<compilation debug="true" targetFramework="4.0">
  <!-- ... -->
</compilation>
0 голосов
/ 02 декабря 2011

Убедитесь, что в файле web.config в вашем веб-проекте импортированы правильные пространства имен.Существует вероятность того, что ваш развернутый веб-сайт использует другой файл web.config, чем тот, который используется Visual Studio для анализа файла бритвы.

0 голосов
/ 02 декабря 2011

Я думаю, это потому, что бритвенный компилятор не знает, каким должен быть тип TModel.

Я получаю те же ошибки и просто их игнорирую, потому что это работает, поэтому я счастлив внутри.Но вы могли бы попробовать что-то вроде этого, хотя, написав это, я думаю, что это отсталый и, вероятно, эпически бесполезный, но, может быть, кто-то еще может пролить свет на то, почему это запаздывает и реальное решение, чтобы избежать этих ошибок.

...