c# - 如果等价于剃刀中的三元表达式,如何写?
问题描述
目前,我在帖子之后使用了三元表达式:Razor If/Else 条件运算符语法它工作正常,但由于在我的情况下表达式值很长,我想以更清晰的方式编写它们,也许在途中使用临时变量。
我知道if
这是一个语句,而不是表达式,但是怎么写呢?结果应该只是字符串(用于在页面上显示)。
所以从:
@(condition ? string1 : string2)
它的if
对应物会是什么样子?
我也搜索并尝试编写if
s 和 lambda,但每次遇到一些语法错误。我想保留返回字符串值的这种简单性,而不是在每个放置值的分支中执行,例如@Html.DisplayFor
.
更新:
我的string
价值观是纯文本,没有 html 标签,或者一些花哨的东西。实际代码只是(为此目的有点过于复杂,但我希望可读):
@(summary.Any() ? String.Join(", ", summary.Select(it => it.Key.ToString())) : "none")
解决方案
我想你只需要几个换行符
@if (someBoolean == true)
{
<div>
Boolean is true
</div>
}
else
{
<div>
Boolean is false
</div>
}
或者,如果您想在生成的 html 中使用变量:
@if (someBoolean == true)
{
<div>
Boolean is: @someBoolean
</div>
}
else
{
<div>
Boolean is: @someBoolean
</div>
}
编辑
如果您只想在 if else 中有 c# 代码,我相信它应该如下所示:
@if (someBoolean == true)
{
@{
// Your if instructions here
}
}
else
{
@{
// Your else instructions here
}
}
推荐阅读
- c# - 在文本编写器上显示字典的键值对值
- javascript - 通过 fetch() 向后端 API 发送 POST 请求时,body 只有 key,没有 value
- javascript - WebdriverIO:无法使用 .getAlertText() 方法“未解析的函数或方法 getAlertText()”
- java - 为什么recyclerview 在android pie 上不起作用?
- getstream-io - 如何在 GetStream 中处理多个提要权限
- jquery - 清除数据表上的所有过滤器/排序/分页
- apache-spark - PySpark 计数在 RDD 中按组区分
- laravel - 未定义属性:Illuminate\Routing\Router::$app
- android - 将 EditText 从顶部移动到其他 EditText 下
- python - 从 Python 中的现有对象中删除“__del__”方法