我遇到一个问题,我在其中声明了一个变量,并想在if三元运算符中评估这个和更多条件,但是当我在这个三元运算符中分配一个变量时,我总是在HTML标记中得到变量,例如这段代码:
@{
var panelTab = "";
@(model.SelectedTab == "Overview" ? panelTab = "active" : "");
}
将在HTML DOM元素中生成“active”一词。我知道你在想什么,可能会说,“这是因为@符号而发生的”,但如果我删除那个符号它也不会编译三元运算符,所以我卡住了,任何帮助?
非常感谢。
答案 0 :(得分:1)
您没有以正确的方式使用三元运营商。将其更改为:
@{var panelTab = model.SelectedTab == "Overview" ? "active" : ""};
答案 1 :(得分:1)
尽管@adiga's answer很有帮助,并且会解决OP所面临的问题,但我想稍微展开一下。
当你写:
@{
}
你告诉剃刀这里c#代码块开始了,现在你在里面编写的c#代码就像在.cs
文件中编写代码一样,你不需要放{{1在那个街区。
@
仅在我们没有明确声明c#代码块时才需要,我们想添加一些剃刀代码,当然是c#表达式或语句与html结合然后我们使用它。
希望它能帮助您理解两者的区别。
答案 2 :(得分:0)
def input = new File("src/test/resources/ShortExample.json")
def json = new JsonSlurper().parse(input)
def changeValueTo = null
def (tkn1, tkn2, tkn3, tkn4) = csvData.fullPath.tokenize('.')
json["$tkn1"]["$tkn2"]["$tkn3"]["$tkn4"] = changeValueTo