使用 MVC,我如何根据 <td> 之一中包含的日期将 <tr> 格式化为某个 class?
With MVC, how can I format <tr> with a certain class based on the date contained in one of the <td>?
我有一个显示 Windows 部署进度的 MVC 应用程序。在我看来,我有一个 table 显示每个部署的当前状态。其中一个属性是最后一次签入部署 ('CurrentTime')。如果当前时间超过 4 小时,我想更改样式。
在我的 MVC 视图中,我试图做这样的事情:
@foreach (var item in Model)
{
if(item.CurrentTime < DateTime.Now.AddHours(-4))
{
@:<tr class="warning">
}
else
{
@:<tr>
}
这是行不通的。我收到解析器错误:
Encountered end tag "tr" with no matching start tag. Are your start/end tags properly balanced?
有什么简单的方法(我正在学习 MVC/web 编程)来完成这个?
我的猜测是 </tr>
以某种方式放错了位置,这就是您收到错误的原因。
您可以将 if 语句替换为使用内联 if。这将使您的 HTML 更易于阅读并最终维护。
<tr class="@((item.CurrentTime < DateTime.Now.AddHours(-4) ? "warning" : ""))">
<!--- Your row contents -->
</tr>
执行此操作的最简单(且更清洁)的方法是执行以下操作:
@foreach (var item in Model)
{
var warning = item.CurrentTime < DateTime.Now.AddHours(-4) ? "warning" : null;
<tr class="@warning">
<td></td>
</tr>
}
Razor 2+ 的一个不错的功能是,如果值为 null,它会自动删除 class 属性。此功能称为 "Conditional Attributes",如果需要,您可以在此处阅读更多内容。
http://www.davidhayden.me/blog/conditional-attributes-in-razor-view-engine-and-asp.net-mvc-4
我有一个显示 Windows 部署进度的 MVC 应用程序。在我看来,我有一个 table 显示每个部署的当前状态。其中一个属性是最后一次签入部署 ('CurrentTime')。如果当前时间超过 4 小时,我想更改样式。
在我的 MVC 视图中,我试图做这样的事情:
@foreach (var item in Model)
{
if(item.CurrentTime < DateTime.Now.AddHours(-4))
{
@:<tr class="warning">
}
else
{
@:<tr>
}
这是行不通的。我收到解析器错误:
Encountered end tag "tr" with no matching start tag. Are your start/end tags properly balanced?
有什么简单的方法(我正在学习 MVC/web 编程)来完成这个?
我的猜测是 </tr>
以某种方式放错了位置,这就是您收到错误的原因。
您可以将 if 语句替换为使用内联 if。这将使您的 HTML 更易于阅读并最终维护。
<tr class="@((item.CurrentTime < DateTime.Now.AddHours(-4) ? "warning" : ""))">
<!--- Your row contents -->
</tr>
执行此操作的最简单(且更清洁)的方法是执行以下操作:
@foreach (var item in Model)
{
var warning = item.CurrentTime < DateTime.Now.AddHours(-4) ? "warning" : null;
<tr class="@warning">
<td></td>
</tr>
}
Razor 2+ 的一个不错的功能是,如果值为 null,它会自动删除 class 属性。此功能称为 "Conditional Attributes",如果需要,您可以在此处阅读更多内容。
http://www.davidhayden.me/blog/conditional-attributes-in-razor-view-engine-and-asp.net-mvc-4