Contenu connexe Similaire à Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурирования комплексных JavaScript-контролов через Fluent-интерфейс (20) Plus de Alexander Byndyu (20) Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурирования комплексных JavaScript-контролов через Fluent-интерфейс1. 3-я конференция .NET разработчиков 25 сентября 2011 Metadata + JavaScript = ♥ Тимур Рахматиллаев IndyCode http://muyou.koumakan.jp 5. «В лоб!» Размещаем код инициализации с жестко заданными параметрами во View Для каждого из возможных применений JavaScript-контрола – свой View 11. Использование атрибутов…О ужас! varattribute = typeof(AttributesLetterForm) .GetProperty("LoveLetter") .GetCustomAttributes( typeof(RosesCountAttribute), true) .SingleOrDefault() asRosesCountAttribute; varrosesCount = attribute != null ? attribute.RosesCount : 0; 12. Еще больше ужаса [Required] [RegularExpression(@"{5}+")] [DisplayName("My dear field one")] [UIHint("DearFieldOne")] [RosesCount(5)] [VeryCustom("This", "Attrbiute", "Is", "So", "Long")] [Editable(true)] publicstringFieldOne { get; set; } [Required] [DisplayFormat(DataFormatString = "M")] [DisplayName("My cute field two")] [UIHint("CuteFieldTwo")] [RosesCount(7)] [VeryCustom("This", "Attrbiute", "Takes", 6, "Strings", "And", 2, "Integers")] [Display(Order = 5)] publicDateTimeFieldTwo { get; set; } 14. Атрибуты – лишь намек на серьезные отношения Форма Атрибуты DataAnnotations Поля формы 15. Использование полей формы publicclassDataLetterForm { publicstringLoveLetter { get; set; } publicintRousesCount { get; set; } } // ... publicActionResultExample() { varmodel = newDataLetterForm{RousesCount= 101 }; returnView(model); } 28. … и как строятся Метаданные Билдер Методы Методы- расширения Описание свойства settings