![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
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(“год”, “года”, “лет”)
|