为带有显示格式注释的 URL 显示的限制长度

本文关键字:显示 URL 显示格式 注释 | 更新日期: 2023-09-27 18:34:23

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

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

为带有显示格式注释的 URL 显示的限制长度

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

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