Синтаксис Razor внутри атрибутов элементов html (ASP MVC 3)

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

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

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

@foreach(var c in Model) {
   <tr id="[email protected]"></tr>
}

Что дает мне следующий результат:

<tr id="[email protected]"></tr>
<tr id="[email protected]"></tr>

и др.

Но я бы хотел:

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

и др.

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

Ответ 1

Вы пробовали <tr>[email protected](c.id)</tr>?

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

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