Оптимизация вида бритвы MVC3 - PullRequest
0 голосов
/ 15 марта 2012

Есть ли лучший способ по сравнению с @ if @ else Просто изменить несколько атрибутов (например, отключено, значение, класс и т. Д.) HTML-элемента на странице cshtml, созданной с помощью представления Razor?

Ответы [ 4 ]

2 голосов
/ 15 марта 2012

Вы также можете использовать встроенные условные операторы:

<input type="text" value="@(true == true ? "one value" : "another value")" />
0 голосов
/ 15 марта 2012

MVC 4 / Razor V2 будет иметь некоторые улучшения:

Условное отображение атрибутов

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

<div @{if (myClass != null) { <text>class="@myClass"</text> } }>Content</div> 

Теперь Razor может обрабатывать это автоматически, поэтому вы можете просто выписать атрибут. Если он нулевой, атрибут не записывается:

<div class="@myClass">Content</div> 

Так что, если @myClass равно null, результат будет следующим:

<div>Content</div>

Из Блог Джона Галлоуэя .

0 голосов
/ 15 марта 2012

Вы можете передать их во ViewModel как значения true / false или строковые значения.Например -

  • все, что необходимо динамически установить для включения или отключения - вы можете создать bool
  • любой HTML-класс, который является строкой, установленной во время выполнения, может быть переданкак строковая переменная в вашей модели представления.

и т. д.

Это очистит ваши бритвенные представления от всех операторов @if else

0 голосов
/ 15 марта 2012

Я не знаю, почему вы думаете, что с бритвой @if есть какой-то недостаток производительности, но вы можете использовать свои ViewModel или ViewBag для этого:

<input type="text" value="@(ViewBag.TheValue)" />

Но для лучшей практики,Не смешивайте логику на стороне сервера с презентацией. «Разделение интересов»


Обновление (Что я имел в виду под «отделением интересов» ):

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...