C# 如何在razor中编写三元表达式的if等价物?
目前,我在帖子后面使用了三元表达式:它工作得很好,但因为在我的例子中,表达式值相当长,所以我想用更清晰的方式来编写它们,也许在编写过程中使用临时变量 我知道C# 如何在razor中编写三元表达式的if等价物?,c#,asp.net-core,razor,C#,Asp.net Core,Razor,目前,我在帖子后面使用了三元表达式:它工作得很好,但因为在我的例子中,表达式值相当长,所以我想用更清晰的方式来编写它们,也许在编写过程中使用临时变量 我知道如果本身是一种陈述,而不是一种表达,那么该如何写呢?结果应该是字符串(用于在页面上显示) 因此,从: @(condition ? string1 : string2) 如果对应物是什么样子 我搜索并尝试编写ifs和lambdas,但每次都遇到一些语法错误。我希望保持返回字符串值的简单性,而不是在每个分支中执行放置值的操作,如@Html.Di
如果本身是一种陈述,而不是一种表达,那么该如何写呢?结果应该是字符串(用于在页面上显示)
因此,从:
@(condition ? string1 : string2)
如果
对应物是什么样子
我搜索并尝试编写if
s和lambdas,但每次都遇到一些语法错误。我希望保持返回字符串值的简单性,而不是在每个分支中执行放置值的操作,如@Html.DisplayFor
更新:
我的string
值是纯文本,没有html标记,或者是一些奇特的东西。实际代码只是(对于这个目的来说有点过于复杂,但我希望可读):
我想你所需要的只是一些换行符
@if (someBoolean == true)
{
<div>
Boolean is true
</div>
}
else
{
<div>
Boolean is false
</div>
}
我想你所需要的只是一些换行符
@if (someBoolean == true)
{
<div>
Boolean is true
</div>
}
else
{
<div>
Boolean is false
</div>
}
声明一个字符串。然后写入if,并在if中为字符串指定正确的值。然后在最后,输出它。标准C#,足够近。请告诉我们您尝试了什么以及出现了什么错误。声明一个字符串。然后写入if,并在if中为字符串指定正确的值。然后在最后,输出它。标准C#,足够近。请告诉我们您尝试了什么,以及您犯了什么错误。谢谢。我以前尝试过简化这种方法,但没有成功——是否可以删除div标记(我正在查看您的第一个示例)?请参见上面的编辑。我不确定这是否有效,我希望谢谢你,但事实并非如此。一件事是语法,编译器不喜欢分支使用嵌套的@{}
,但更大的问题是@if
被视为语句,而不是表达式(就像常规的C#)。例如,在一个分支中使用纯常量会立即产生错误,因为编译器需要赋值。谢谢。我以前尝试过简化这种方法,但没有成功——是否可以删除div标记(我正在查看您的第一个示例)?请参见上面的编辑。我不确定这是否有效,我希望谢谢你,但事实并非如此。一件事是语法,编译器不喜欢分支使用嵌套的@{}
,但更大的问题是@if
被视为语句,而不是表达式(就像常规的C#)。例如,在一个分支中使用纯常量会立即产生错误,因为编译器需要赋值。
@if (someBoolean == true)
{
<div>
Boolean is: @someBoolean
</div>
}
else
{
<div>
Boolean is: @someBoolean
</div>
}
@if (someBoolean == true)
{
@{
// Your if instructions here
}
}
else
{
@{
// Your else instructions here
}
}