?: Razor C# 中的条件

Ash*_*ani 1 c# asp.net asp.net-mvc razor asp.net-mvc-5

我正在将一个旧网站迁移到 ASP.Net MVC 5,我有一个这样的链接:

<a href="/contact"><%=User.Identity.IsAuthenticated?"Support":"Contact Us"%></a> 
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索并尝试了几件事,最终得到了以下代码:

<a href="/contact">@if{User.Identity.IsAuthenticated){@Html.Raw("Support");}else{@HtmlRaw("Contact Us");}</a> 
Run Code Online (Sandbox Code Playgroud)

但这似乎不是解决方案,因为它比第一个复杂得多,而 Razor 是为了简单而创建的

Nic*_*k G 5

只需将您的三元表达式包装起来就@()可以了。

<a href="/contact">@(User.Identity.IsAuthenticated ? "Support" : "Contact Us")</a>
Run Code Online (Sandbox Code Playgroud)

编辑:

如果您需要 HTML 元素,您可以将三元表达式包装在@Html.Raw().

IE

@Html.Raw(User.Identity.IsAuthenticated ? "<div>Support</div>" : "Contact Us")
Run Code Online (Sandbox Code Playgroud)