检查字符串是否是Razor中的数字

时间:2019-04-30 11:59:13

标签: razor

在应用程序中,有一个网格,其中包含带有以下代码的列:

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中执行此操作的指南将不胜感激。

1 个答案:

答案 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中正确处理它。