2012-05-06 6 views
5

どのように次のコードは正常に動作してくる...剃刀コードブロックにulタグを含めるにはどうすればよいですか?

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

しかし、このコードは正常に動作しません...

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

1は、次のエラーが返され、2番目のエラー...

コンパイラエラーメッセージ:CS0103: 'partner'という名前は現在のコンテキストに存在しません。

私は、かみそりのコード混合規則に従うのが難しいと考えています。カノニカルな説明を与えるすべてのリンクが評価されます。

2番目の例ではセス・

答えて

10

あなたはforeach@との前に付ける必要があります。

+1

私が間違っていたことの説明だけでなく、説明もありがとう。 –

3

、あなたはマークアップからコードへの移行を@foreachを必要としています。

ifブロックの直接の内容はすでにコードであるため、最初の例ではそうしません。あなたは、コードブロックに戻って、それを伝えるために@を追加する必要があるので、モードをマークアップするためにバックで

@foreach (var partner in Model) 

<ul>が設定されレイザー:

2

あなたは参考としてthisに従うべきです、あなたはこのような問題に直面することはありません。 :)

+0

リンクをありがとう。ちょうど私が必要なもの。 –

関連する問題