css - MVC3 条件行样式以及 CSS 老虎条纹

标签 css asp.net-mvc-3

我想根据被绑定(bind)元素的属性设置具有特定 css 样式的表格中的一些行。对于 CSS,我应用了老虎条纹,我想应用的这个新的 css 样式应该除了现有的条纹。

@foreach (var item in Model) {
<tr @if(item.IsComplete { class="complete"})>

老虎条纹是通过以下方式实现的:

table tr:nth-child(2n+0) {
    background-color: #90b2d3;
    color: white;
}

所以每隔一行应该是浅蓝色和白色文本,但任何包含元素 IsComplete 的行应该添加“完整”的 css 样式。

.complete {
  font-style: italic;
  color: #ccc;
}

这只是为了使其显示为灰色且“完整”。

然而,按照我目前的代码,我得到一个 parser error

Parser Error Message: Encountered end tag "tr" with no matching start tag. Are your start/end tags properly balanced?

我不明白,<tr>出现在我的第一个代码块中,@ IsComplete razor 语法应该 只是有条件地包含一个 css 类。

我知道这种方法确实意味着如果老虎条纹为一行着色 IsComplete属性是添加一个只使用其中一个的 css 类——我希望在弄清楚这里的语法有什么问题之后处理这个问题。不过,如果有一种方法可以同时应用这两个类(如果需要),那就太棒了。

最佳答案

像这样尝试:

<tr@(Html.Raw(item.IsComplete ? " class=\"complete\"" : ""))>

或者编写一个自定义的 HTML 帮助程序来避免标签汤。

关于css - MVC3 条件行样式以及 CSS 老虎条纹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15338561/

相关文章:

html - 2 div inline 但 h1 居中,就像第二个 div 不存在一样

css - bootstrap 3 中的隐藏 sm

css - Flex Alert.styleName 对我不起作用

css - 如何将 n 个 div 垂直堆叠到 n 个宽度?

c# - ASP.Net MVC3 - 将 Razor 标记作为参数传递

asp.net-mvc-3 - MVC 3 - 比较属性 - 在客户端执行不区分大小写的比较

javascript - 单击元素时如何使用 knockout.js css-binding 更改 bg-color?

asp.net-mvc-3 - 如何将部分 View 结果附加到 div 中?

c# - 使用动态表达式 API 时验证 ASP.NET MVC 3 Controller 的操作参数

asp.net-mvc-3 - 为什么 ValidationSummary(true) 显示属性错误的空摘要?