在视图外部使用 Html.DisplayFor() 或从 DisplayFormat 注释中获取格式化属性
本文关键字:注释 DisplayFormat 或从 获取 属性 格式化 外部 视图 DisplayFor Html | 更新日期: 2023-09-27 18:31:04
我有一个实用程序类,其中包含一个方法,我正在从视图中调用和传递对象。我需要从该方法中调用Html.DisplayFor()
,或者只需要一种方法来获取由DisplayFormat
数据注释格式化的模型属性。
[DisplayFormat(DataFormatString = "{0:MMMM d, yyyy}")]
System.DateTime ReleaseDate { get; set; }
有没有办法在视图之外实现这一点?我已经尝试过将我的HtmlHelper
对象传递给该方法:
public static string GetProductSnippet(Product product, HtmlHelper<List<Product>> helper)
{
return helper.DisplayFor(p => p.ReleaseDate).ToString();
}
但这行不通,因为我的HtmlHelper
对象并不总是具有相同的泛型类型。有没有办法在不使用 HtmlHelper
类的情况下获取属性的格式化版本?
可以为该方法使用泛型类型:
public static string GetProductSnippet<T>(Product product, HtmlHelper<T> helper)
{
return helper.DisplayFor(p => p.ReleaseDate).ToString();
}
var markup = GetProductSnippet<List<Product>>(product, helper);
至于在没有帮助程序的情况下获取代码,可以从 MVC 源代码中获取显示帮助程序的实现并根据需要进行调整