Использование оператора If в представлении MVC Razor

В следующем коде

Если я использую оператор «@If», я получаю следующую ошибку кода компиляции: «Имя« сетка »не существует в текущем контексте.

@if (Model.SModel != null)

{

@{ 
    WebGrid grid = new WebGrid(Model.SModel);

 }

 }

 else
 {
}

@grid.GetHtml()

,

Но код компилируется без оператора «Если». Например

@{ 
    WebGrid grid = new WebGrid(Model.SModel);

}
@grid.GetHtml().

В чем заключается синтаксическая ошибка при использовании оператора If else


person user2630764    schedule 05.08.2013    source источник


Ответы (3)


grid не объявляется за рамками вашего if статуса.

Попробуйте это вместо этого:

@if (Model.SModel != null) {
    WebGrid(Model.SModel).GetHtml()
}
person hunter    schedule 05.08.2013

Я бы попробовал это:

@if (Model.SModel != null)
{
    WebGrid grid = new WebGrid(Model.SModel);
    grid.GetHtml()
}
else
{
}
person Brian Maupin    schedule 05.08.2013
comment
grid не существует вне оператора if - person hunter; 05.08.2013

Вам не нужно использовать @{} внутри @if. Пишите так:

@if (Model.SModel != null)
{
WebGrid grid = new WebGrid(Model.SModel)
}
person Andrey Gubal    schedule 05.08.2013
comment
grid не будет существовать вне оператора if - person hunter; 05.08.2013