gpt4 book ai didi

asp.net-mvc - 为什么 Html.DisplayTextFor 忽略 DisplayFormatAttribute?

转载 作者:行者123 更新时间:2023-12-02 00:40:40 25 4
gpt4 key购买 nike

我在其他地方读到 DisplayFormat 只是以与 string.Format 相同的方式使用 DataFormatString 。我正在尝试显示一个很长的电话号码;在控制台应用程序中,可以执行以下操作:

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

s =“800-555-1212”

为什么当我在我的 View 中使用它时

@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))

最佳答案

我快速浏览了 MVC3 source 。我假设您通过 DataAnnotations 指定格式

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

当您使用 @Html.DisplayTextFor(m => m.Property) 帮助器时,这似乎不适用,它显然最终会执行一个简单的 ToString 。但是,当您使用 @Html.DisplayFor(m => m.Property) 时,它会被应用,它通过 TemplateHelpers 进行调用。

关于asp.net-mvc - 为什么 Html.DisplayTextFor 忽略 DisplayFormatAttribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8248446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com