根据Model值为元素添加样式

时间:2012-10-29 13:31:46

标签: asp.net-mvc

如果符合某个条件,我想在div标签中添加一个简单的内联样式。

我能够应用"禁用"成功上课,但我无法显示我的光标样式。

<div class="item  @(item.AvailableTimeSlots == "0" ? "disabled" : "")" @(item.AvailableTimeSlots == "0" ? "style='cursor: default;'" : "")>

任何指针?

2 个答案:

答案 0 :(得分:3)

工作代码段

<div class="item  @("0" == "0" ? "disabled" : "")" @Html.Raw("0" == "0" ? "style='cursor: default;'" : "")>

添加Html.Raw()为我解决了问题。没有它,你最终得到的结果如下:

<div class="item  disabled" style=&#39;cursor: default;&#39;>

我尝试了几种不同的浏览器,每次检查DOM时都会得到不同的结果。 IE8破坏了它; Chrome错误地重做了它; IE9似乎正确地使其格式良好。

很少注意到:

  • 删除内联样式的@James解决方案是一个很好的解决方案。目前的代码真的很难阅读,内联样式无论如何都不是一个好主意。
  • 看起来item.AvailableTimeSlots应该是整数,而不是字符串。

答案 1 :(得分:2)

  

任何指针?

最好尽可能避免使用内联样式。我建议你将cursor代码移到它自己的CSS类和&amp;纯粹与类别一起工作。

<强> CSS

.default {
    cursor: default;
}
.disabled {
    ...
}

查看

@{
    var itemCLass = @item.AvailableTimeSlots == "0" ? "disabled" : "default";
}
<div class="item @itemClass" />