【问题标题】:Razor syntax in Menu菜单中的 Razor 语法
【发布时间】:2011-11-30 23:10:27
【问题描述】:

我正在使用 Razor 构建菜单,但无法正常显示。这是给我带来问题的行:

<li @topNavCurrentCount == @topNavCount ? "class=last" : @string.Empty><a href="@node.Url.Replace("~/","/").Replace(".aspx","")">@node.Title</a>

它像这样渲染 HTML:

 <li {1 == 7 ? "class=last" : ;}><a href="/Home">Home</a>

我知道我即将获得它,但我看不到它。

【问题讨论】:

    标签: razor


    【解决方案1】:

    尝试在 if 语句周围放置方括号。

    <li @(topNavCurrentCount == topNavCount ? "class=last" : string.Empty)>
    

    变量旁边的@会打印值

    【讨论】:

      【解决方案2】:

      我认为以下可能有效(在语句周围放置括号):

      <li @( topNavCurrentCount == topNavCount ? "class=last" : string.Empty)><a href="@node.Url.Replace("~/","/").Replace(".aspx","")">@node.Title</a>
      

      【讨论】:

        【解决方案3】:

        您需要用@() 将您的逻辑表达式括起来。目前正在发生的事情是只有变量的值被发送到视图。

        见: Razor If/Else conditional operator syntax

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-31
          • 1970-01-01
          • 2017-04-06
          • 1970-01-01
          • 2017-07-18
          • 1970-01-01
          相关资源
          最近更新 更多