Using If statement in a MVC Razor View

2019-03-26 22:53发布

问题:

In the following code,

If I use "@If" statement ,I get the following compile code error as " The name 'grid' does not exist in the current context.

@if (Model.SModel != null)

{

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

 }

 }

 else
 {
}

@grid.GetHtml()

,

But the code compiles without the "If" statement.For example

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

}
@grid.GetHtml().

What is the syntactical error in using If else statement

回答1:

grid isn't declared outside of the scope of your if statment.

Try this instead:

@if (Model.SModel != null) {
    WebGrid(Model.SModel).GetHtml()
}


回答2:

I would try this:

@if (Model.SModel != null)
{
    WebGrid grid = new WebGrid(Model.SModel);
    grid.GetHtml()
}
else
{
}


回答3:

You do not need to use @{} inside @if. Write like this:

@if (Model.SModel != null)
{
WebGrid grid = new WebGrid(Model.SModel)
}