借助WebForms视图引擎,我通常将三元运算符用于非常简单的条件,尤其是在HTML属性中。 例如:

<a class="<%=User.Identity.IsAuthenticated ? "auth" : "anon" %>">My link here</a>

上面的代码将根据用户是否通过身份验证为<a>标记提供authanon类。

Razor视图引擎的等效语法是什么? 因为Razor要求HTML标签“知道”何时跳入和跳出代码和标记,所以我目前坚持以下几点:

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

坦率地说,这是可怕的

我很乐意做这样的事情,但我在努力了解如何在剃刀:

<a class="@=User.Identity.IsAuthenticated ? "auth" : "anon";">My link here</a>

-

更新:

在此期间,我创建了以下HtmlHelper:

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

在Razor中可以这样称呼它:

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

不过,我希望有一种使用三元运算符的方法,而不必退一步将其包装在扩展方法中。


#1楼

对于将ASP.net与VB剃刀一起使用的人,也可以使用三元运算符。

它也必须在剃须刀表达内:

@(Razor_Expression)

三元运算符的工作方式如下:

If(BooleanTestExpression, "TruePart", "FalsePart")

此处显示的使用VB剃须刀的相同代码示例如下所示:

<a class="@(If(User.Identity.IsAuthenticated, "auth", "anon"))">My link here</a>

注意:编写TextExpression时,请记住C#和VB之间的布尔符号不同。


#2楼

在我的问题中,我希望视图中的锚点<a>text</a>基于某个值,并且该文本是从App string Resources检索的

所以,这个@()是解决方案

<a href='#'>@(Model.ID == 0 ? Resource_en.Back : Resource_en.Department_View_DescartChanges)
</a>

如果文本不是来自App string Resources使用此

@(Model.ID == 0 ? "Back" :"Descart Changes")

#3楼

您也可以使用以下方法:

<input type="text" class="@(@mvccondition ? "true-class" : "false-class")">

试试这个..祝你好运谢谢。


#4楼

您应该能够使用@()表达式语法:

<a class="@(User.Identity.IsAuthenticated ? "auth" : "anon")">My link here</a>

不过,我没有安装Razor,所以我可能是错的。


#5楼

附录:

重要的概念是您正在评估Razor代码中的表达式。 最好的方法(例如,如果您处于foreach循环中)是使用通用方法。

在Razor中调用通用方法的语法为:

@(expression)

在这种情况下,表达式为:

User.Identity.IsAuthenticated ? "auth" : "anon"

因此,解决方案是:

@(User.Identity.IsAuthenticated ? "auth" : "anon")

此代码可以在Razor中的任何地方使用,而不仅仅是html属性。

有关C#Razor语法快速参考,请参见@Kyralessa的评论(Phil Haack的博客)。


#6楼

一个简单的版本,让眼睛更轻松!

@(true?"yes":"no")

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

  1. 在html标签中写三元运算符,如何在剃须刀中使用三元运算符(特别是在HTML属性上)?...

    借助WebForms视图引擎,我通常将三元运算符用于非常简单的条件,尤其是在HTML属性中.例如: ">My link here 上面的代码将为标签提供auth或的类,anon具体取决 ...

  2. c语言三元运算符_了解C / C ++中的三元运算符

    c语言三元运算符 In this article, we'll take a look at understanding the ternary operator in C / C++. 在本文中,我 ...

  3. linux shell 三元运算符,语法 - Bash中的三元运算符(?:)

    语法 - Bash中的三元运算符(?:) 有没有办法做这样的事情 int a = (b == 5) ? c : d; 用Bash? 14个解决方案 346 votes ternary operator ...

  4. html三元运算符 模板,AngularJS模板中的三元运算符

    小编典典 更新 :Angular1.1.5添加了一个三元运算符,因此现在我们可以简单地编写 如果您使用的是较早版本的Angular,则有两个选择: (condition && resu ...

  5. php判断简写,怎么简写php 中的三元运算符

    今天我发现了PHP三元运算符的一个小小的用法. 这给我干涸的大脑一点乐趣! PHP 三元运算符是对参数赋值时候的一个简洁的主要用法. 一个主要的用法: PHP 三元运算符能够让你在一行代码中描述判定代 ...

  6. linux shell 三元运算符,关于语法:Bash中的三元运算符(?:)

    有什么办法可以做这种事吗 int a = (b == 5) ? c : d; 使用BASH? @荷兰语的答案表明,bash确实有类似于"三元运算符"的东西,但是在bash中,这被称 ...

  7. java 三元 代替 if_关于性能:Java中的三元运算符比“ if”条件快吗?

    本问题已经有最佳答案,请猛点这里访问. 我容易出现"如果条件综合症",这意味着我倾向于一直使用if条件. 我很少使用三元运算符. 例如: //I like to do this: ...

  8. 三元运算符 嵌套 php,php中的三元运算符详解

    三元运算符的功能与"if....else"流程语句一致,它在一行中书写,代码精练.执行效率高,在PHP程序中恰当地使用三元运算符能够让脚本更为简洁.高效,代码的语法如下: (exp ...

  9. 微信小程序 中使用三元运算符

    wxml <van-cell-group><van-cell title="昵称" value="{{userInfo.nickName}}" ...

最新文章

  1. python设计模式(九):外观模式
  2. matplotlib xticks 基于 旋转_咬文嚼字——对matplotlib的文字绘图总结
  3. 苹果新手机软件测试,苹果即将发布iOS 14.5正式版,测试工作已进入最后阶段
  4. 用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识
  5. android os苹果手机助手,深度系统V20(1003)内测招募:新增手机助手,支持安卓/iOS端...
  6. 精通javascript笔记(智能社)——数字时钟
  7. noip模拟赛 寻宝之后
  8. (2) python 使用pd.read_excel 读取excel时,选取某一列为索引
  9. linux禁用别人ping自己,linux /etc/sysctl.conf 禁止别人ping自己
  10. 2022 chrome离线下载包
  11. 成人高考计算机基础历年真题,成人高考历年真题及答案
  12. Delphi第三方控件大比拼(收费篇)
  13. iOS12捷径最全整理(100多个捷径),包括抖音视频下载捷径,地图导航捷径等
  14. 卸载趋势杀毒软件的步骤
  15. js每日一题(12)
  16. Unity特效基础:粒子效果面板
  17. C++继承——以应用抽象类,求圆、圆内接正方形、圆外切正方形的面积和周长为例
  18. 克罗内克积【kronecker product】
  19. 002 - new javascript 基础
  20. X86 将死?RISC-V 正当立

热门文章

  1. Android 代码设置调试等待
  2. android gradle.properties
  3. adb 显示手机分辨率
  4. 【Java基础】面向对象特性
  5. 【剑指offer-Java版】27二叉搜索树与双向链表
  6. 与splash详解相关的
  7. sql中如何统计各种零件的总数量_[Python]提取数据库中数据, 用人货场的分析方法, 对电商双十一促销活动结果数据进行复盘分析...
  8. c++如何获取文件时间_Linux下如何删除长时间不使用的旧文件?
  9. Java并发之同步的产生及解决
  10. iOS 13 Xcode11 中的 Scene Delegate