2012-01-08 16 views
6

Jest to kod mam problemy z:C# składni Razor wewnątrz łańcucha

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

Jak mogę używać I w sortablei ID? Próbowałem: @i lub @ {i} ale wydaje się, że bez spacji przed i nie działa. Nie mogłem znaleźć odpowiedzi na mój problem w "Razor Syntax Reference", więc jestem teraz trochę nieświadomy.

Odpowiedz

8

Wsporniki:

@:<ul id="[email protected](i)" class='droptrue'> 

Nawiasy tutaj obejmują wyrażenie brzytwy; w wielu przypadkach nie są one wymagane, jednak są one konieczne, gdy: (. obowiązuje etc)

  • wyrażenie (po prawej) jest niebanalną i potrzebuje pomocy do zakresu to
  • gdzie bez niego, wygląda jak adres e-mail, tj. [email protected] - ma to specjalne podejście, aby uniknąć łamania stron z adresami e-mail w nich
+0

Ahh tak proste, ale nie było wspomniane w odnośniku! Wielkie dzięki! – Unfixable

1

coś takiego:

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

Oto quick reference dla twojej wiedzy.


Szwy jakbym nie miał rację,

jak powiedział Mark, wszystko co musisz zrobić, to otoczyć zmiennej z nawiasami jak

[email protected](i) 

Mam nadzieję, że odniesienia jest nieco użyteczne, ponieważ Twój szczególny problem można znaleźć w Jawna ekspresja przykład

Powiązane problemy