为什么添加此代码块会破坏语法?

时间:2013-10-16 01:42:01

标签: razor

此代码有效:

@{  
    if (...)
    {
        foreach (...)
        {
            if (...)
            {
                if (...)
                {                          
                    if (...)
                    {
                        (*some html*)
                    }                                                     
                }
                else
                {
                    (*some html*)
                }
            }
            else
            {
                (*some html*)        
            }
        }
    }
}

然而,当我添加一个if / else语句来获取它时:

@{  
    if (...)
    {
        foreach (...)
        {
            if (...)
            {
                if (...)
                {   
                    ***ADDING THIS***
                    if (...)
                    {
                        (*opening html tag (no closing tag)*)
                    }
                    else
                    {
                        (*opening html tag (no closing tag)*)
                    }
                    ******************

                    if (...)
                    {
                        (*some html*)
                    }                                                     
                }
                else
                {
                    (*some html*)
                }
            }
            else
            {
                (*some html*)        
            }
        }
    }
}

它打破了,为什么?现在,在Visual Studio中语法突出显示无法识别if / else之后的if语句,并且我收到有关缺少'}'的错误

1 个答案:

答案 0 :(得分:0)

我添加的标记是一个没有结束标记的开始标记,Razor不允许这样做。在这种情况下,您可以在代码块中输出HTML,如下所示:

@Html.Raw("<html>")

(来自MS的Html.Raw参考 - http://msdn.microsoft.com/en-us/library/gg568896(v=vs.111).aspx

或者这个:

@:<html>

@:在Razor中将某些内容呈现为纯文本