C # Razor Синтаксис внутри строки - PullRequest
6 голосов
/ 08 января 2012

Это код, с которым у меня проблемы:

@{int i = 1;}
@foreach (var item in Model)
{
    @:<ul id="sortablei" class='droptrue'>
    i++;
}

Как я могу использовать i в id sortablei? Я пытался: @i или @ {i}, но, кажется, без пробела, прежде чем я его не работает. Я не смог найти ответ на мою проблему в Razor Syntax Reference, поэтому сейчас я немного не в курсе.

Ответы [ 2 ]

10 голосов
/ 08 января 2012

Кронштейны:

@:<ul id="sortable@(i)" class='droptrue'>

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

  • выражение (справа) нетривиально (пробелы и т. Д.) И нуждается в помощи для его расширения
  • , где без него это выглядит как адрес электронной почты, т.е. abc@def - это имеет специальную обработку, чтобы избежать взлома страниц с адресами электронной почты в них
1 голос
/ 08 января 2012

как то так:

@model System.Generic.Collections.List<MyNameSpace.Product>
@{
    int i = 1;
    string sortablei = "abc",
           droptrue = "abc-cls";
}

<ul id="@sortablei" class="@droptrue">
    @foreach (var item in Model)
    {
       <li>@item.Qty x @item.Name</li>
       i++;
    }
</ul>

Вот краткий справочник для вашего знания.


Швы, как будто я не правильно понял,

Как сказал Марк, все, что вам нужно сделать, это заключить переменную в квадратные скобки, например

sortable@(i)

Я надеюсь, что ссылка будет несколько полезной, поскольку конкретную проблему можно найти в Явное выражение пример

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