Umbraco或MVC Razor元素在标记开头可能有不同的CSS样式
所以我以前见过这样做,我完全忘记了语法在哪里或是什么。 非常感谢您的帮助 因此,我有一个元素想添加CSS样式,具体取决于Umbraco CMS中是否填写了哪个属性。我认为它涉及到元素标记后面的冒号(:)或类似的东西。但不完全确定 我想做这样的事情Umbraco或MVC Razor元素在标记开头可能有不同的CSS样式,razor,umbraco,Razor,Umbraco,所以我以前见过这样做,我完全忘记了语法在哪里或是什么。 非常感谢您的帮助 因此,我有一个元素想添加CSS样式,具体取决于Umbraco CMS中是否填写了哪个属性。我认为它涉及到元素标记后面的冒号(:)或类似的东西。但不完全确定 我想做这样的事情 foreach(var item in @Model.myNodeList) if(@item.myProperty != String.Empty){ <div class="myStyleOne">
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>
}
<div style="@(item.boxBackgroundColor != String.Empty ? "background-color:" + item.boxBackgroundColor + "; color:#fff !important" : "background-color:#fff;")">
foreach(@Model.myNodeList中的变量项)
如果(@item.myProperty!=String.Empty){
}
else如果(@item.myProperty==String.Empty){
}
否则{
}
我的内容将在此div内,并带有不同的起始标记
}
我知道这段代码并不完全正确,我遗漏了一些东西。谁能给我指出正确的方向吗?谢谢。你是说那个
好吧,以防万一其他人也想这么做。我知道是什么了 这就是解决办法。它包括在元素的开始和结束标记前面添加@:符号。 注意:取出最后一个。谢谢@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>
}
foreach(@Model.myNodeList中的变量项)
如果(@item.myProperty!=String.Empty){
@:
}
else如果(@item.myProperty==String.Empty){
@:
}
我的内容将在此div内,并带有不同的起始标记
@:
}
@:
和@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>
}
foreach(Model.myNodeList中的var项)
{
字符串myClass=(item.myProperty!=string.Empty)?“myStyleOne”:“myStyleTwo”;
我的内容将在此div中使用相同的起始标记
}
如果我想使用样式标记而不是类标记来插入内联样式(我知道,这是一种糟糕的做法,但在我的情况下是需要的),这种情况是否会相同。我在样式标签中有一个属性需要输入。像卡洛斯,是的。重要的是将计算条件并返回一个值,在本例中为字符串。如果需要,可以将class
更改为style
,并将myStyleOne
/myStyleTwo
更改为CSS属性。@Carlos,请参见编辑。因为我们已经打开了一个显式的代码块(@()
),所以您不需要在项
的前面加上@
。不过,您需要连接字符串。这就成功了!非常有洞察力和教育性。像他们说的那样每天学习新的东西。谢谢你的帮助!
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>
}