2012-05-06 10 views
5

Dlaczego następujący kod działa poprawnie ...Jak dołączyć znaczniki ul wewnątrz bloku kodu brzytwy?

 <ul class="searchList"> 
      @if (Model.Count() > 0) 
      { 
       foreach (var partner in Model) 
       { 
        <li> 
         @Html.ActionLink(@partner.Name, "Details", "Partner", new { id = partner.AID }, null)<br /> 
         @partner.Street<br /> 
         @partner.CityStateZip<br /> 
         @if(!string.IsNullOrEmpty(partner.Phone)) 
          { 
           @partner.Phone<br /> 
          } 
         @(partner.Distance) miles<br /> 
        </li> 
       } 
      } 
     </ul> 

ale ten kod nie działa dobrze ...

  @if (Model.Count() > 0) 
      { 
       <ul class="searchList"> 

         foreach (var partner in Model) 
         { 
          <li> 
           @Html.ActionLink(@partner.Name, "Details", "Partner", new { id = partner.AID }, null)<br /> 
           @partner.Street<br /> 
           @partner.CityStateZip<br /> 
           @if(!string.IsNullOrEmpty(partner.Phone)) 
            { 
             @partner.Phone<br /> 
            } 
           @(partner.Distance) miles<br /> 
          </li> 
         } 

       </ul> 
      } 

Drugi błąd jeden zwraca następujący błąd ...

Komunikat o błędzie kompilatora: CS0103: Nazwa "partner" nie istnieje w bieżącym kontekście.

Znalezienie reguł mieszania kodu brzytwy jest trudne do naśladowania. Każdy link, który daje kanoniczne wyjaśnienie, zostanie doceniony.

Seth

Odpowiedz

10

trzeba poprzedzić foreach z @:

@foreach (var partner in Model) 

<ul> wyznacza Razor powrotem do markup-mode więc trzeba dodać @, aby poinformować go, aby wrócić do bloku kodu.

+1

Dziękuję za nie tylko wyjaśnienie mi, ale także wyjaśnienie tego, co robiłem źle. –

3

W drugim przykładzie, trzeba @foreach przejście od znaczników w kodzie.

W pierwszym przykładzie tego nie robimy, ponieważ bezpośrednia zawartość bloku if jest już kodem.

2

powinieneś postępować zgodnie z this jako odniesieniem, już nigdy nie spotkasz się z takimi problemami. :)

+0

Dzięki za link. Dokładnie to, czego potrzebowałem. –

Powiązane problemy