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

Razor 为什么添加此代码块会破坏语法?,razor,Razor,此代码适用于: @{ if (...) { foreach (...) { if (...) { if (...) { if (...) { (*some

此代码适用于:

@{  
    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语句,我得到了一个关于缺少“}”的错误。

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

@Html.Raw("<html>")
@Html.Raw(“”)
(来自MS-的Html.Raw参考)

或者这个:

@:<html>
@:

@:在Razor中,以纯文本形式呈现某些内容

至少您需要解释“中断”的含义,提供错误输出(如果有)和预期结果。我意识到你删除了很多内容,把重点放在你认为相关的代码上,但如果你不知道哪些内容被破坏了,你就不知道哪些内容是相关的。最后,作为一个快速测试,您是否只尝试了
***之间的代码,自己添加了这个***
标记,而没有其他嵌套的
if
s?谢谢,我刚才添加了一些关于错误的详细信息。好的,您建议自己测试代码,这让我尝试从添加的代码块中删除标记。标记添加了一个开始标记而不是结束标记,似乎出于某种原因Razor不喜欢这样??如果我添加了一个结束标记,它会修复代码,但这意味着我无法通过这种方式实现我想要做的事情,因为我需要在页面的下一步关闭标记。