Почему Html.DisplayTextFor игнорирует DisplayFormatAttribute?

Я читал в другом месте, что DisplayFormat просто использует DataFormatString так же, как string.Format. Я пытаюсь отобразить длинный номер телефона; в консольном приложении работает следующее:

const string PhoneFormat = "{0:###-###-####}";
long? phone = 8005551212;
string s = string.Format(PhoneFormat, phone);

s = "800-555-1212"

Почему, когда я использую его в моем представлении как

@Html.DisplayTextFor(model => model.Patient.Phone)

, отображается 8005551212

Вот модель ...

public class Patient
{
    [DisplayFormat(DataFormatString = "{0:###-###-####}")]
    public long? Phone { get; set; }
}

Также пробовал DisplayFor, который тоже не работает.

Единственный способ, который мне подходит, это

Html.Raw(string.Format("{0:###-###-####}", Model.Patient.Phone))
12
задан Paul Rivera 23 November 2011 в 21:42
поделиться