我正在尝试限制使用注释显示网址的字符数。我希望链接能够很长,它只是显示我想要改变的方式。我可以限制显示网址(链接)的每个视图中的长度,但我更愿意在模型中只更改一次。我不明白为什么这不起作用。添加DisplayFormat注释后,url将显示为之前,而根本不会更改长度。
[Required()]
[DataType(DataType.Url)]
[DisplayFormat(DataFormatString = "{0,20}")]
public string Link { get; set; }
答案 0 :(得分: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")
当然,您可以扩展显示模板以使用元数据并检查空值等,