2015-06-16 2 views
0

Следующий код не работает, потому что propiedadesFormularioDetalle имеет значение null. Я разместил IF перед кодом блока, но до сих пор не работает, если удалить один из bracked, то он не будет компилироватьпроверить значение null на синтаксисе бритвы

@if (propiedadesFormularioDetalle != null) { } 
         <div class="panel panel-default"> 
          <div class="panel-heading">Propiedades adicionales</div> 
          <div class="panel-body"> 
           <dl class="dl-horizontal"> 
            @foreach (KeyValuePair<string, string> propiedad in propiedadesFormularioDetalle) 
            { 

             <dt> 
              @Html.DisplayName(propiedad.Key) 
             </dt> 

             <dd> 
              @Html.DisplayFor(prop => propiedad.Value) 
             </dd> 

            } 
           </dl> 
          </div>  
         }     
        </div> 

ответ

1

попробовать это:

@{ 
if (propiedadesFormularioDetalle != null) { 
         <div class="panel panel-default"> 
          <div class="panel-heading">Propiedades adicionales</div> 
          <div class="panel-body"> 
           <dl class="dl-horizontal"> 
            foreach (KeyValuePair<string, string> propiedad in propiedadesFormularioDetalle) 
            { 

             <dt> 
              Html.DisplayName(propiedad.Key) 
             </dt> 

             <dd> 
              Html.DisplayFor(prop => propiedad.Value) 
             </dd> 

            } 
           </dl> 
          </div>  
         }     
        </div> 
} 
+0

все еще не работает. http://screencast.com/t/Fjx6Pt3f –

+0

похоже, что вам не хватает закрывающих скобок} в конце .. – Aram

+0

И я думаю, вам больше не нужен знак @ для цикла foreach в этом блоке ... – Aram

1

Вы закрыли свой if состояние и разместили дополнительную закрывающуюся фигурную скобку до последнего div. Это должно быть правильным:

@if (propiedadesFormularioDetalle != null) 
{ //} - remove this closing curly brace 
    <div class="panel panel-default"> 
     <div class="panel-heading">Propiedades adicionales</div> 
     <div class="panel-body"> 
      <dl class="dl-horizontal"> 
       @foreach (KeyValuePair<string, string> propiedad in propiedadesFormularioDetalle) 
       { 
        <dt> 
         @Html.DisplayName(propiedad.Key) 
        </dt> 
        <dd> 
         @Html.DisplayFor(prop => propiedad.Value) 
        </dd> 
       } 
      </dl> 
     </div> 
    //} - this needs to be moved to the bottom 
    </div> 
} 
1

Попробуйте это:

@if (propiedadesFormularioDetalle != null) 
{ 
    <div class="panel panel-default"> 
     <div class="panel-heading">Propiedades adicionales</div> 
      <div class="panel-body"> 
       <dl class="dl-horizontal"> 
         @foreach (KeyValuePair<string, string> propiedad in propiedadesFormularioDetalle) 
         { 
          <dt> 
           @Html.DisplayName(propiedad.Key) 
          </dt> 
          <dd> 
           @Html.DisplayFor(prop => propiedad.Value) 
          </dd> 

         } 
        </dl> 
       </div>       
     </div> 
} 
0
@if (propiedadesFormularioDetalle != null) 
{ 
    <div class="panel panel-default"> 
      <div class="panel-heading">Propiedades adicionales</div> 
      <div class="panel-body"> 
       <dl class="dl-horizontal"> 
       @foreach (KeyValuePair<string, string> propiedad in propiedadesFormularioDetalle) 
       { 
        <dt>@Html.DisplayName(propiedad.Key)</dt> 
        <dd>@Html.DisplayFor(prop => propiedad.Value)</dd> 
       } 
       </dl> 
      </div>  
    </div> 
} 

ОДНАКО! Независимо от того, что выше надписи «if» может повлиять на этот. Если вы уже находитесь в кодовом блоке, Razor будет жаловаться на ненужное «@» перед оператором if.

Смежные вопросы