相关疑难解决方法(0)

如何在剃刀中使用三元运算符(特别是在HTML属性上)?

使用WebForms视图引擎,我通常会使用三元运算符来处理非常简单的条件,特别是在HTML属性中.例如:

<a class="<%=User.Identity.IsAuthenticated ? "auth" : "anon" %>">My link here</a>
Run Code Online (Sandbox Code Playgroud)

上面的代码将为<a>标记提供一个类authanon取决于用户是否经过身份验证.

Razor视图引擎的等效语法是什么?因为Razor需要HTML标签来"知道"何时跳入和跳出代码和标记,所以我现在仍然坚持以下内容:

@if(User.Identity.IsAuthenticated)  { <a class="auth">My link here</a> }
else { <a class="anon">My link here</a> }
Run Code Online (Sandbox Code Playgroud)

温和地说,这很可怕.

我很想做一些喜欢这一点,但我在努力了解如何在剃刀:

<a class="@=User.Identity.IsAuthenticated ? "auth" : "anon";">My link here</a>
Run Code Online (Sandbox Code Playgroud)

-

更新:

与此同时,我创建了这个HtmlHelper:

public static MvcHtmlString Conditional(this HtmlHelper html, Boolean condition, String ifTrue, String ifFalse)
{
  return MvcHtmlString.Create(condition ? ifTrue : ifFalse);
}
Run Code Online (Sandbox Code Playgroud)

这可以从Razor这样调用:

<a class="@Html.Conditional(User.Identity.IsAuthenticated, "auth", "anon")">My link here</a>
Run Code Online (Sandbox Code Playgroud)

尽管如此,我希望有一种方法可以使用三元运算符而不会退回到扩展方法中.

razor asp.net-mvc-3

387
推荐指数
5
解决办法
16万
查看次数

ASP.NET MVC Razor:三元

使用带有Razor视图引擎的三元组时遇到一些麻烦.

我的模型有一个字符串属性.如果该字符串属性为null,我想null在视图中呈现.如果属性不为null,我希望它使用前导和尾随呈现属性值'.

我怎样才能做到这一点?

更新:对不起,稍微改了一下问题.

asp.net view razor

2
推荐指数
2
解决办法
2404
查看次数

标签 统计

razor ×2

asp.net ×1

asp.net-mvc-3 ×1

view ×1