在index.cshtml中,我有以下类似的工作代码:
<script type="text/javascript">
if ('@Model.SomeCondition' === 'True'){
Do Something();
}
</script>
=== 'True'
对我来说似乎是一个奇怪的黑客,迫使Razor和JavaScript相处。如何重构使用=== true
?这并没有给出相同的结果。可以用Razor和JavaScript完成吗?
答案 0 :(得分:5)
如果属性为bool
,您可以通过以下方式检查剃须刀:
<script type="text/javascript">
@if (Model.SomeCondition){
@:Do Something();
}
</script>
或:
<script type="text/javascript">
@if (Model.SomeCondition){
<text>
Do Something();
</text>
}
</script>
答案 1 :(得分:1)
假设SomeCondition
是一个字符串,请删除引号,并使其符合javascript&#39; s布尔值的小写形式
<script language="javascript">
// just to be clear this is javascript, not server code
if (@Model.SomeCondition.ToLowerInvariant()){
.. //
}
</script>
但是,如果SomeCondition
是服务器代码中的布尔值,则需要先转换为字符串并使其为小写
<script language="javascript">
// just to be clear this is javascript, not server code
if (@Model.SomeCondition.ToString().ToLowerInvariant()){
.. //
}
</script>
答案 2 :(得分:0)
只需在c#/ razor中用你想在那里执行的javascript编写if语句。
示例:
@if(boolVariable)
{
<script>
//javascript here
</script>
}