Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Extension






Расширения для строк или целых чисел очень удобно использовать в проекте. Мы сделаем несколько реализаций, но вынесем это в отдельный проект. Добавим проект LessonProject.Tools class WebExtensions:

public static class WebExtensions

{

}

Пропишем в reference LessonProject.

Многострочные данные хранятся с разделителем \r\n, и при выводе в тексте эти разделители не учитываются. Необходимо создать функцию NlToBr(). Создаем:

public static MvcHtmlString NlToBr(this string source)

{

if (string.IsNullOrWhiteSpace(source))

{

return new MvcHtmlString(string.Empty);

}

return new MvcHtmlString(source.Replace(Environment.NewLine, " < br /> "));

}

Добавляем объявление в Web.config:

< add namespace=" LessonProject.Tools" />

Можно использовать:

@Model.Description.NlToBr()

Так же создадим расширение Teaser, которое урезает строку до максимального допустимого количества символов, и ставит «…» после, если строка оказалась длиннее.

public static string Teaser(this string content, int length, string more = "...")

{

if (string.IsNullOrWhiteSpace(content))

{

return string.Empty;

}

 

if (content.Length < length)

{

return content;

}

 

return content.Substring(0, length) + more;

}

 

Использовать можно:

@Model.Description.Teaser(120, “> > > ”)

Следующее расширение относится к целым числам и подставляет одно из слов в определении для 1, 2 или 5. Например, 1 год, 2 года, 5 лет:

public static string CountWord(this int count, string first, string second, string five)

{

if (count % 10 == 1 & & (int)(count / 10)! = 1)

{

return first;

}

if (count % 10 > 1 & & count % 10 < 5 & & ((int)(count / 10) % 10)! = 1)

{

return second;

}

return five;

}

Использовать можно так:

@year @year.CountWord(“год”, “года”, “лет”)







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.