检查剃刀语法上的值 null
check for value null on razor syntax
以下代码失败,因为 propiedadesFormularioDetalle 为空。
我在块代码之前放置了一个 IF 但仍然无法正常工作,如果我删除其中一个括号,则它不会编译
@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 (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
条件,并在最后一个 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>
}
试试这个:
@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 (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" 语句前面不必要的“@”。
以下代码失败,因为 propiedadesFormularioDetalle 为空。 我在块代码之前放置了一个 IF 但仍然无法正常工作,如果我删除其中一个括号,则它不会编译
@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 (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
条件,并在最后一个 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>
}
试试这个:
@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 (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" 语句前面不必要的“@”。