【问题标题】:check if string is a number in Razor检查字符串是否是 Razor 中的数字
【发布时间】:2019-09-19 02:07:56
【问题描述】:

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

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

【问题讨论】:

    标签: razor


    【解决方案1】:

    感谢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 中正确处理它。

    【讨论】:

      猜你喜欢
      • 2017-11-28
      • 2013-12-13
      • 2021-10-10
      • 2021-07-10
      • 1970-01-01
      • 2013-11-20
      相关资源
      最近更新 更多