MVC Razor необходимо получить подстроку

В моем представлении есть следующее

     @Html.DisplayFor(modelItem => item.FirstName)

Мне нужно получить первые инициалы имени.

Я попробовал

    @Html.DisplayFor(modelItem => item.FirstName).Substring(1,1) 

, но похоже, это не работает. Я получаю следующую ошибку: .. 'System.Web.Mvc.MvcHtmlString' не содержит определения для 'Substring' и расширения

13
задан tereško 2 July 2012 в 00:22
поделиться

1 ответ

Две вещи, которые я изучил при попытке решить эту проблему, которые являются ключевыми:

  1. Бритва позволяет C#, что означает.Substring (0,1), метод будет работать
  2. (ГДЕ я ПОШЕЛ НЕ ТАК, КАК НАДО) - Быть очень осторожным, что ни один из Вашего объекта. FirstNames пусты или содержат меньше символов, чем быть требуемым как длина строки.

Мое решение было следующим:

string test = item.FirstName.ToString();
    string test_add = ""; //creating an empty variable
    if(test.Length == 0) //situation where we have an empty instance
    {
        test_add = "0"; //or whatever you'd like it to be when item.FirstName is empty
    }
    else
    {
        test_add = test.Substring(0, 1);
    }

и можно использовать @test_add в коде бритвы вместо @item. FirstName

0
ответ дан 1 December 2019 в 19:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: