2013-10-08 2 views
2

Я пытаюсь ограничить, сколько символов URL будет показано с аннотациями. Я хочу, чтобы ссылка была очень длинной, это только то, как она отображается, которую я хочу изменить. Я мог бы ограничить длину в каждом представлении, отображающем url (Link), но я бы предпочел изменить его только один раз в модели. Я не понимаю, почему это не работает. После добавления аннотации DisplayFormat URL-адрес отображается по-прежнему без изменения длины.Предельная длина, показанная для URL с аннотацией DisplayFormat?

[Required()] 
[DataType(DataType.Url)] 
[DisplayFormat(DataFormatString = "{0,20}")] 
public string Link { get; set; } 
+1

Какие методы вы используете, которые вы ожидаете использовать атрибут DisplayFormat? –

+0

'@ Html.DisplayFor' После того, как вы искали больше в Интернете, я получаю впечатление, что максимальная длина не может быть установлена ​​с помощью DisplayFormat. Я думал, что {0,20} установит длину до 20, но теперь я получаю впечатление, что он устанавливает только минимальную длину. –

ответ

1

Возможно, лучший способ достичь этого - создать свой собственный шаблон для вашего типа данных. Одним из возможных решений является добавление ShortUrl.asxc или ShortUrl.cshtml в Shared\DisplayTemplates папку:

@model string 

@Model.Substring(20) 

А затем изменить определение поля для:

[Required()] 
[DataType(DataType.Url)] 
[DisplayFormat(DataFormatString = "{0,20}")] 
[UIHint("ShortUrl")] 
public string Link { get; set; } 

или предоставить имя шаблона в представлении:

@Html.DisplayFor(m => m.Link, "ShortUrl") 

Конечно, вы можете расширить шаблон дисплея, чтобы использовать метаданные и проверить нули и т. Д.,

+0

Спасибо! Ваш ответ был именно тем, что я искал :) –

Смежные вопросы