проверить, является ли строка числом в Razor - PullRequest
0 голосов
/ 30 апреля 2019

В приложении есть сетка, в которой есть столбец со следующим кодом:

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");

В наборе данных большинство грузовиков имеют номер в качестве идентификатора, хотя есть некоторые грузовики с именами (Расти,например).Вместо жесткого кода во всех названиях грузовиков, я хотел бы изменить код, чтобы он проверял @m.Ticket.Truck, чтобы увидеть, является ли это число, а затем применять стили тега, только если это не число.Тем не менее, я не знаю правильный синтаксис для этого в Razor.

Посты, которые я нашел, показывают только, как справиться с этим на стороне сервера.Будем весьма благодарны за любые рекомендации, как это сделать в Razor.

1 Ответ

0 голосов
/ 30 апреля 2019

Благодаря этому посту Я понял это. Также рефакторинг кода.

        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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...