1

我是 HTML5 的新手。此代码在 if 语句上返回解析器错误。我不知道它是否会起作用,那么如何修复 if 语句以及如何使它起作用?

<div class="page">
    @if (Constants.EnvironmentSetting.ToUpper() == "LIVE"){
        <header>
    } else {
        <header class="headerTest">
    }

        <div id="title">
            @Content.Image("MulalleyLogoSmall.jpg", "float:left;padding:10px 10px 0 10px", Url)
            <div class="head" style="float:left;padding-top:4px;">Instruction To Open Contract (ITOC)</div>
        </div>

        <div id="logindisplay">
            @Html.Partial("_LogOnUserControl")
        </div> 

        <nav>
            @Html.Partial("_MenuItems")
        </nav>
    </header>

    <section>
        @RenderBody()
    </section>
</div>
4

2 回答 2

2

您不需要将花括号放在自己的行上。

如果你把它改成这个会发生什么?

@if (Constants.EnvironmentSetting.ToUpper() == "LIVE"){
    @:<header>
} else {
    @:<header class="headerTest">
}

告诉 Razor 解析器该@:行的其余部分应作为标记而不是 C# 代码。

于 2012-08-30T07:57:59.720 回答
1

您必须将 { 放在 Razor 中自己的行上

@if (Constants.EnvironmentSetting.ToUpper() == "LIVE"){

应该

@if (Constants.EnvironmentSetting.ToUpper() == "LIVE")
{

否则,该部分代码应该可以工作。

附带说明,最好使用

Constants.EnvironmentSettings.Equals("LIVE", 
             StringComparison.CurrentCultureIgnoreCase);

ToUpper 方法通常用于将字符串转换为大写,以便在不区分大小写的比较中使用它。执行不区分大小写比较的更好方法是调用具有 StringComparison 参数的字符串比较方法,该参数的值设置为 StringComparison.CurrentCultureIgnoreCase 以进行区分区域性、不区分大小写的比较。

http://msdn.microsoft.com/en-us/library/ewdd6aed.aspx

于 2012-08-30T07:49:40.023 回答