Синтаксис бритвы внутри атрибутов HTML-элементов (ASP MVC 3) - PullRequest
62 голосов
/ 12 сентября 2010

У меня есть таблица с повторяющимися строками клиентов, я хотел бы добавить идентификатор клиента в атрибут идентификатора строк моей таблицы следующим образом:

<tr id="row<customer id>"></tr>

Я пытаюсь добавить этот код:

@foreach(var c in Model) {
   <tr id="row@c.id"></tr>
}

Что дает мне следующий вывод:

<tr id="row@c.id"></tr>
<tr id="row@c.id"></tr>

и т.д.

Но я бы хотел, чтобы это было:

<tr id="row1"></tr>
<tr id="row2"></tr>

и т.д.

Я также пытался добавить <tr>row@{c.id}</tr>, но это не сработало ..

1 Ответ

110 голосов
/ 12 сентября 2010

вы пробовали <tr>row@(c.id)</tr>?

Реальная причина, по которой это не работает, заключается в том, что ваш row@c.id соответствует регулярному выражению для адреса электронной почты.Таким образом, синтаксический анализатор предполагает, что это электронное письмо, а не попытка вызвать код.Причина, по которой row@{c.id} не работает, заключается в том, что @{} не выводит и должен содержать блоки кода.

Если вы сомневаетесь, вы должны использовать @(), поскольку это форсирует то, что содержится() для анализа в виде кода.

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