【问题标题】:C# - Rendering a partial in a ternary operatorC# - 在三元运算符中呈现部分
【发布时间】:2020-04-07 06:33:11
【问题描述】:

我正在使用三元运算符有条件地渲染页脚。我在做@RenderPage,尽管它有效,但它意味着拥有一个控制器以及一些其他额外的代码。

我遇到了; expected 错误,根据 StackOverflow 和一些文档,这是一个一般性错误,可能是由许多不同的事情引起的。

我的语法正确吗?还是我缺少什么?


// in this section is a switch statement that sets isNewFooter to true or false depending on which page has loaded.

 <div class="body-content">
    @RenderBody()

    @{
       (isNewFooter ? Html.RenderPartial("~/Views/Shared/NewFooter.cshtml") : Html.RenderPartial("~/Views/Shared/OldFooter.cshtml"))
     }

</div>

【问题讨论】:

    标签: c# asp.net partial-views conditional-operator


    【解决方案1】:

    三元运算符用于计算不同的表达式,而不是执行不同的语句。你可以使用标准的if

    if (isNewFooter) 
        Html.RenderPartial("~/Views/Shared/NewFooter.cshtml"); 
    else
        Html.RenderPartial("~/Views/Shared/OldFooter.cshtml");
    

    或者,重构常见的东西,以便您可以使用三元运算符:

    Html.RenderPartial(String.Format("~/Views/Shared/{0}Footer.cshtml", (isNewFooter ? "New" : "Old"))); 
    

    使用您更容易阅读和维护的任何一个。

    【讨论】:

    • 嘿@DStanley,感谢您提供的信息。我不知道三元运算符的行为方式。 ; 错误在第二个选项中仍然存在,所以我选择了第一个,现在它已经启动并运行了。
    • @Bodrov 在这两种情况下我都省略了分号。两者都应该使用该固定值。
    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 2011-02-15
    • 2021-10-25
    相关资源
    最近更新 更多