MVC - принудительное создание и компиляция разметки вида бритвы - PullRequest
0 голосов
/ 10 мая 2011

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

Это возбуждает меня, когда я обнаруживаю, что мне пришлось повторно учитывать, например, Действие ссылки не использовать строки в качестве параметров (что-то я считаю ужасным), чтобы использовать перечисления или константы для действий и имен контроллеров.

например. @(Url.UserLink(UserActions.xxx))

Однако мне кажется странным, что я все еще могу ввести gobbledygook для параметра (то есть несуществующего элемента enum), и проект будет построен. Просматривая страницу я получаю ошибку времени компиляции. Однако в модульном тестировании вызов контроллера проходит.

Может кто-нибудь предложить какие-нибудь обходные пути, каким-то образом используя RenderView или что-то из теста? По крайней мере, код не должен компилироваться!?

Я не исследовал интерфейсные тестеры, такие как watIn или Selenium , но я думаю, что они будут ...

1 Ответ

1 голос
/ 10 мая 2011

Только что нашёл этот маленький самородок.Очевидно, что для поведения по умолчанию было сочтено не очень хорошей идеей разрешать компиляцию ваших представлений при сборке, вот как это переопределить (отредактируйте ваш файл проекта .csproj вручную):

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    ...
    <MvcBuildViews>true</MvcBuildViews>
  </PropertyGroup>

Примечаниесоответствующий элемент "MvcBuildViews".

...