使用DisplayFormat注释限制显示的网址长度?

时间:2013-10-08 19:26:33

标签: c# asp.net-mvc data-annotations string-length

我正在尝试限制使用注释显示网址的字符数。我希望链接能够很长,它只是显示我想要改变的方式。我可以限制显示网址(链接)的每个视图中的长度,但我更愿意在模型中只更改一次。我不明白为什么这不起作用。添加DisplayFormat注释后,url将显示为之前,而根本不会更改长度。

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

1 个答案:

答案 0 :(得分:1)

实现它的最佳方法可能是为您的数据类型创建自己的模板。可能的解决方案之一是将ShortUrl.asxcShortUrl.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")

当然,您可以扩展显示模板以使用元数据并检查空值等,