在 HTML 帮助程序中检索 [显示] 属性名称
本文关键字:属性 显示 HTML 帮助程序 检索 | 更新日期: 2023-09-27 18:36:27
我们有一个带有以下签名的自定义HTML帮助程序。
public static MvcHtmlString TextBoxFor<TModel,
TProperty>(this HtmlHelper<TModel> helper,
Expression<Func<TModel, TProperty>> property)
{
var htmlAttributes = new Dictionary<string, object>();
// ....
return helper.TextBoxFor(property, htmlAttributes);
}
我想在这里实现 placeholder
属性,该属性应设置为此控件的标签。标签可以是字符串常量,也可以是为属性的 [Display]
属性指定的字符串。
有什么方法可以从这个帮助程序函数中获取此标签吗?
这
似乎有效:
ModelMetadata metadata = ModelMetadata.FromLambdaExpression(property, helper.ViewData);
string htmlFieldName = ExpressionHelper.GetExpressionText(property);
string labelText = metadata.DisplayName ?? metadata.PropertyName ?? htmlFieldName.Split('.').Last();
if (!String.IsNullOrWhiteSpace(labelText))
// labelText contains the label