Есть ли более удобный способ получить запятую после @variable в бритве - PullRequest
3 голосов
/ 21 февраля 2011

У меня есть шаблон отображения бритвы в MVC3 для адреса.Вот пример кода, который я использовал для одной строки адреса:

@Model.City<text>,</text>

Когда я помещаю запятую сразу после имени переменной, это создает синтаксическую ошибку.Добавление тега вокруг запятой устраняет проблему, но это выглядит немного грязно, когда большая часть бритвенного кода настолько аккуратна и кратка.1007 *

Редактировать: Этот фрагмент кода находится внутри блока if.Я не осознавал, но оказывается, что это влияет на то, как разар разбирает вещи.

1 Ответ

12 голосов
/ 21 февраля 2011

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

@(Model.City).

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

@Model.City@('.')


РЕДАКТИРОВАТЬ : Я неправильно понял вашу ситуацию.
Внутри блока кода (@if, @for, @{ ... }) анализатор Razor ожидает код, а не разметку (или текст).

Если вы введете тег HTML или тег <text>, он будет знать, что вы его разметили.
Однако произвольный текст, такой как ,, предполагается источником C #.

Вместо использования тега <text>, чтобы сообщить парсеру о разметке, следует использовать @:

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