在应用程序中,有一个网格,其中包含带有以下代码的列:
columns.Add(m => m.Ticket.Truck)
.Encoded(false)
.Sanitized(false)
.RenderValueAs(m =>
@<div>
@if (m.Ticket.Truck.ToLower() == "rusty")
{
<span style="color:red; font-size:14px; font-weight:bold;">@m.Ticket.Truck</span>
}
else
{
<span>@m.Ticket.Truck</span>
}
</div>).Titled("Truck");
在数据集中,尽管有些卡车具有名称(例如Rusty),但大多数卡车都以数字作为其标识符。除了要对所有卡车名称进行硬编码之外,我想修改代码,以便它检查@m.Ticket.Truck
来查看它是否是数字,然后仅在不是数字的情况下才应用标签样式。但是,我不知道在Razor中执行此操作的正确语法。
我发现的帖子仅显示了如何在服务器端进行处理。任何有关如何在Razor中执行此操作的指南将不胜感激。
答案 0 :(得分:0)
感谢this post我发现了。还重构了代码。
columns.Add(m => m.Ticket.Truck)
.Encoded(false)
.Sanitized(false)
.RenderValueAs(m =>
@<div>
@{
string style = "";
int value;
if (!int.TryParse(m.Ticket.Truck, out value))
{
// Truck is not an integer so set CSS
style = "style=color:red;font-size:14px;font-weight:bold;";
}
}
<span @style>@m.Ticket.Truck</span>
</div>).Titled("Truck");
请注意,样式字符串中的分号后故意没有空格。如果存在空格,则Razor无法在HTML中正确处理它。