所以我之前已经看过这个,我完全忘记了语法的位置或内容。 非常感谢帮助。
所以我有一个元素我想添加一个CSS样式,取决于在Umbraco CMS中填写或不填充的属性。我认为它涉及冒号(:)或元素标签后的类似东西。但不完全确定。
我想做这样的事情
foreach(var item in @Model.myNodeList)
if(@item.myProperty != String.Empty){
<div class="myStyleOne">
}
else if(@item.myProperty == String.Empty){
<div class="myStyleTwo">
}
else{
<div class="myDefaultStyle">
}
<p>My content that will be inside of this div with different starting tags</p>
</div>
}
我知道这段代码并不完全正确,我遗漏了一些东西。谁能指出我正确的方向?感谢。
答案 0 :(得分:2)
你的意思是conditional operator?
<div class="@(item.myProperty != String.Empty ? "myStyleOne" : "myStyleTwo")">
看到字符串是否为空,我不确定myDefaultStyle
适合的位置。
这也适用于内联样式。在评论中使用您的示例,它看起来像这样
<div style="@(item.boxBackgroundColor != String.Empty ? "background-color:" + item.boxBackgroundColor + "; color:#fff !important" : "background-color:#fff;")">
答案 1 :(得分:0)
好的,以防万一其他人也想这样做。我发现它是什么。
这是解决方案。它涉及在元素的开始和结束标记前添加@:符号。 注意:取出最后一个。谢谢@Brandon。这是第一次没有意义。布兰登的方式或方式也有效。
foreach(var item in @Model.myNodeList)
if(@item.myProperty != String.Empty){
@:<div class="myStyleOne">
}
else if(@item.myProperty == String.Empty){
@:<div class="myStyleTwo">
}
<p>My content that will be inside of this div with different starting tags</p>
@:</div>
}
答案 2 :(得分:0)
@:
和@Html.Raw()
方法会做同样的事情。但是@:
会让你继续输入html而@Html.Raw()
需要一个字符串。
您可以使用类的变量来清理代码:
foreach (var item in Model.myNodeList)
{
string myClass = (item.myProperty != String.Empty) ? "myStyleOne" : "myStyleTwo";
<div class="@myClass">
<p>My content that will be inside of this div with the same starting tag</p>
</div>
}