1
@{(int)Session["current"] == 1 ? Html.ActionLink("Home", "Index", "Home", new { @class = "selected" }) : Html.ActionLink("Home", "Index", "Home");}

当我使用这段代码时,我得到一个错误:CS0201:只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句

我不认为“;” 应该在最后,但没有它我得到一个错误,说它丢失了。我试过使用 <%= %> 语法,但也没有用。

4

2 回答 2

5

你可以这样做

@Html.ActionLink("Pradžia", "Index", "Home", null, new { @class = (int)Session["current"] == 1 ? "selected" : "" })
于 2014-04-17T14:25:14.110 回答
2

@async 有一个很好的答案。

J̶u̶s̶t̶̶t̶o̶̶l̶e̶t̶̶y̶o̶u̶̶k̶n̶o̶w̶, ̶<̶%̶=̶ ̶%̶>̶̶t̶h̶e̶̶e̶q̶u̶i̶v̶a̶l̶e̶n̶t̶̶f̶o̶r̶̶̶̶i̶n̶̶r̶a̶z̶o̶r̶̶i̶s̶̶̶̶ , ̶@̶(̶)̶̶̶n̶o̶t̶̶̶@̶{̶}̶

编辑:正如@JeremyCook 指出的那样,等效于<%= %>is @Html.Raw()。但是,在您的情况下,由于您使用的是 Html 帮助程序,因此无需转义 html 编码。所以你可以使用@()

因此,对于您的情况,您可以简单地替换括号(并删除“;”)然后它应该可以工作:

@((int)Session["current"] == 1 ? 
    Html.ActionLink("Home", "Index", "Home", new { @class = "selected" }) :     
    Html.ActionLink("Home", "Index", "Home"))
于 2014-04-17T14:30:34.170 回答