Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Umbraco或MVC Razor元素在标记开头可能有不同的CSS样式_Razor_Umbraco - Fatal编程技术网

Umbraco或MVC Razor元素在标记开头可能有不同的CSS样式

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">

所以我以前见过这样做,我完全忘记了语法在哪里或是什么。 非常感谢您的帮助

因此,我有一个元素想添加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>
 }
<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>
}