HTML帮助器 – 向TextBoxFor添加工具提示

我有一个带有一些属性的模型,我在它们上面添加了注释,特别是

[Display(Name="MyName", Description="This is a sample description")] 

注解。 我有一个表单,我使用Html.TextBoxFor()帮助器,我想添加一个引导工具提示到该控件。 工具提示的内容将是“描述”注释中的文本。 如何才能做到这一点? 我应该创建自定义扩展还是可以通过其他方式检索描述?

提前致谢

此帮助程序从DisplayAttribute中提取“描述”属性:

 using System; using System.ComponentModel.DataAnnotations; using System.Linq.Expressions; public static class DisplayAttributeExtension { public static string GetPropertyDescription(Expression> expression) { var propertyExpression = (MemberExpression) expression.Body; var propertyMember = propertyExpression.Member; var displayAttributes = propertyMember.GetCustomAttributes(typeof (DisplayAttribute), true); return displayAttributes.Length == 1 ? ((DisplayAttribute) displayAttributes[0]).Description : string.Empty; } } 

用法示例:

TestModel.cs:

 public class TestModel { [Display(Name = "MyName", Description = "This is a sample description")] public string MyName { get; set; } } 

Index.cshtml:

 @model Models.TestModel @section scripts {  } @Html.TextBoxFor(m => m.MyName, new Dictionary { {"data-toggle", "tooltip"}, {"title", DisplayAttributeExtension.GetPropertyDescription(() => Model.MyName)} })