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


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

<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>

etc.

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

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

etc.

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

1 61

1 ответ:

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

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

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