Синтаксис бритвы с ошибками компилируется, когда он не должен компилироваться

Итак, я ошибся во время выполнения с моим приложением asp.net mvc3, когда я проверил код, я вижу, что на нем есть красная строка, список ошибок говорит, что нет такого функция определена, но он все равно будет компилировать тонкий. Ошибка появляется только во время выполнения? Я использую T4MVC, и я надеялся, что это поможет мне избежать таких проблем!?

Это по дизайну или я делаю что-то не так здесь?

enter image description here

Приведенный выше код НЕ должен компилироваться, потому что там нет такого метода!

Он не работает во время выполнения:

enter image description here

Этот вид вещей случается очень много, не только для не определенных методов, но даже для переменных и т.д.

Ответ 1

Это по дизайну. По умолчанию представление MVC отключено. Вы можете включить сборку представлений MVC в Visual Studio следующим образом:

  • Щелкните правой кнопкой мыши на своем проекте в Visual Studio
  • Выгрузить проект
  • Изменить проект

  • Измените значение MvcBuildViews от false до true

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ...
    <MvcBuildViews>true</MvcBuildViews>
    ...

  • Обновить проект

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

Обновление

Вот ответ на SO, объясняя, как избежать ошибки:

Ошибка использования раздела, зарегистрированного как allowDefinition = 'MachineToApplication', превышающего уровень приложения. Эта ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS