您可以创建自己的属性,将工具提示添加到模型元数据,然后让自定义帮助器方法呈现适当的 html。
例如
属性
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class ToolTipAttribute : Attribute, IMetadataAware
{
public string Message { get; set; }
public ToolTipAttribute(string message)
{
Message = message;
}
public void OnMetadataCreated(ModelMetadata metadata)
{
metadata.AdditionalValues["ToolTip"] = Message;
}
}
辅助方法
public static MvcHtmlString PasswordForWithToolTip<TModel, TEnum>(this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TEnum>> expression)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
var htmlAttributes = new Dictionary<string, object>();
if (metadata.AdditionalValues.ContainsKey("ToolTip"))
{
var toolTip = metadata.AdditionalValues["ToolTip"] as string;
if (!string.IsNullOrEmpty(toolTip))
htmlAttributes.Add("title", toolTip);
}
return htmlHelper.PasswordFor(expression, htmlAttributes);
}
然后,用属性装饰你的ToolTip
属性,并使用@Html.PasswordFor
WithToolTip( x => x.Password)
它应该呈现适当的 HTML。