@{(int)Session["current"] == 1 ? Html.ActionLink("Home", "Index", "Home", new { @class = "selected" }) : Html.ActionLink("Home", "Index", "Home");}
当我使用此代码时出现错误: CS0201:只能将赋值,调用,递增,递减,等待和新对象表达式用作语句
我不认为“;”应该是在最后,但没有它我得到一个错误说它丢失了。我尝试过使用<%=%>语法,但也没有用。
答案 0 :(得分:5)
你可以这样做
@Html.ActionLink("Pradžia", "Index", "Home", null, new { @class = (int)Session["current"] == 1 ? "selected" : "" })
答案 1 :(得分:2)
@async有一个很好的答案。
只是为了让你知道,̶等效为̶̶<̶%̶=̶ ̶%̶>̶
̶在剃刀̶̶@̶(̶)̶
̶,̶不̶̶@̶{̶}̶
̶
编辑:
正如@JeremyCook指出的那样,<%= %>
的等价物是@Html.Raw()
。但是在你的情况下因为你使用的是Html helper,所以不需要转义html编码。所以你可以使用@()
因此,对于您的情况,您可以简单地替换括号(并删除“;”)然后它应该工作:
@((int)Session["current"] == 1 ?
Html.ActionLink("Home", "Index", "Home", new { @class = "selected" }) :
Html.ActionLink("Home", "Index", "Home"))