displayformatattribute для пользовательского формата строки
Я хочу иметь возможность отмечать свойства в моей модели представления для форматирования с использованием пользовательского формата при отображении в моем представлении MVC.
Я предполагаю, что мне нужен мой собственный атрибут displayformatt и установить displayformat, но я не уверен, как установить этот displayformat или где. Если я хочу показать число в качестве валюты, это просто, просто установите DataFormatString в "{0:C}" в конструкторе атрибута.
Но если, например, я хочу замаскировать адреса электронной почты (поэтому удалите доменное имя), как бы я сделал это, используя displayformatattribute или, возможно, datatypeattribute? Так что это строковое поле, которое я хочу преобразовать. Я знаю, что есть другие подходы, например, пользовательские шаблоны отображения, но тогда я бы потерял некоторые встроенные функции htmlhelper. Я просто хочу изменить формат строки больше ничего. И желательно сделать это так же просто, как добавить атрибут в те поля, которые требуют маскировки
Кажется, что DataFormatString не может использовать пользовательский форматировщик?
ура Фил
1 ответ
Чем-то похожим на: Как сделать настраиваемый атрибут DisplayFormat
public class CustomDisplayFormatAttribute : DisplayFormatAttribute {
public CustomDisplayFormatAttribute() {
//MSDN Custom Date Format string rules:http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
DataFormatString = "{0;dddd dd MMMM YYYY}";
}
}
Затем вы можете использовать его и базовые атрибуты, например, ApplyFormatInEditMode, например:
[CustomDisplayFormatAttribute(ApplyFormatInEditMode = false)]
public DateTime? CreatedOn { get; set; }
Обратите внимание, что для дат существует настройка "Культура сервера против клиента", http://msdn.microsoft.com/en-us/library/bb882561(v=vs.110).aspx обсуждает (но не отвечает), как это сделать в JavaScript