我面临着一个问题,我声明了一个变量,并希望在if三元运算符中计算这个条件和更多条件,但当我在这个三元运算符中分配一个变量时,我总是在HTML标记中获得该变量,例如下面的代码:
@{
var panelTab = "";
@(model.SelectedTab == "Overview" ? panelTab = "active" : "");
}
将导致在HTML DOM元素中出现单词"active“。我知道你在想什么,可能会说,“这是因为@符号”,但如果我删除那个符号,它也不会编译三元运算符,所以我卡住了,有什么帮助吗?
非常感谢。
发布于 2017-10-04 02:40:31
您没有正确地使用三元运算符。将其更改为:
@{var panelTab = model.SelectedTab == "Overview" ? "active" : ""};
发布于 2017-10-04 02:47:06
虽然@adiga's answer是有帮助的,并将解决OP所面临的问题,但我想对它进行一点扩展。
当你写的时候:
@{
}
你告诉剃刀,这里的c#代码块开始了,现在无论你在里面写什么c#代码,就像在.cs
文件中写代码一样,你不需要把@
放在这个块的旁边。
只有当我们没有显式声明c#代码块时才需要@
,我们想要添加一些剃刀代码,当然是c#表达式或语句,然后我们就可以使用它了。
希望它能帮助你理解两者的区别。
发布于 2017-10-04 03:26:04
//use in view body
<li class="Tab @(Model.SelectedTab == "Overview"?"active:"")"><a href="#">Menu 1</a></li>
https://stackoverflow.com/questions/46551301
复制相似问题