菜单中的Razor语法

菜单中的Razor语法,razor,Razor,我正在用Razor创建菜单,但在正确显示时遇到问题。这是给我带来问题的一句话: <li @topNavCurrentCount == @topNavCount ? "class=last" : @string.Empty><a href="@node.Url.Replace("~/","/").Replace(".aspx","")">@node.Title</a> 它以如下方式呈现HTML: <li {1 == 7 ? "class=last"

我正在用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>


我知道我马上就要得到它了,但我看不到它。

试着在if语句周围放上括号

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


@在变量旁边将打印值

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



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

见:

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