Я хочу иметь возможность отмечать свойства в моей модели просмотра для форматирования с использованием настраиваемого формата при отображении в моем представлении MVC.
Я предполагаю, что мне нужен свой собственный displayformatattribute и установить displayformat, но я не уверен, как установить этот displayformat или где. Если я хочу показать номер в виде валюты, это просто, просто установите DataFormatString в "{0: C}" в конструкторе атрибута.
Но если, например, я хочу скрыть адреса электронной почты (так что удалите имя домена), как бы это сделать, используя атрибут displayformatattribute или, возможно, атрибут datatype? Поэтому это строковое поле, которое я хочу преобразовать. Я знаю, что есть другие подходы, например, пользовательские шаблоны отображения, но затем я потеряю некоторые встроенные функции htmlhelper. Я просто хочу изменить формат строки ничем иным. И желательно сделать это так же просто, как добавление атрибута в те поля, которые нуждаются в маскировке
Кажется, что DataFormatString не может взять пользовательский форматтер?
приветствие Фила
Аналогично: Как создать настраиваемый атрибут 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.