简体   繁体   English

Razor中C#表达式中的条件语句

[英]Conditional statement in c# expression in Razor

How can I write this if statement 我怎么写这个if语句

@if (camera.IsInStock)
{
    <span class="text-success" style="float:right">IN STOCK</span>
}
else
{
    <span class="text-danger" style="float:right">OUT OF STOCK</span>
}

in expression like this: 表达如下:

@(camera.IsInStock ? "<span style='float:right' class='success'>IN STOCK</span>" : "<span style='float:right' class='danger'>OUT OF STOCK</span>")

The expression I provided doesn't work. 我提供的表达式不起作用。 Thanks 谢谢

When you are trying to render the HTML markup inside a ternary expression, you should use Html.Raw method so that it will not get html encoded by razor. 当您尝试在三元表达式中呈现HTML标记时,应使用Html.Raw方法,以使它不会被razor编码为html。

@(camera.IsInStock ? 
        Html.Raw("<span style='float:right' class='text-success'>IN STOCK</span>") 
      : Html.Raw("<span style='float:right' class='text-danger'>OUT OF STOCK</span>"))

I personally prefer your first approach as i feel that is more readable. 我个人更喜欢您的第一种方法,因为我觉得它更易读。 you may also consider creating helper methods which takes the IsInStock flag and return the css class needed and the text needed or even your entire span markup. 您还可以考虑创建IsInStock标志的帮助程序方法,并返回所需的css类和所需的文本,甚至返回整个范围标记。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM