gpt4 book ai didi

asp.net-mvc - asp.net MVC 扩展 DataAnnotations

转载 作者:行者123 更新时间:2023-12-04 23:31:57 27 4
gpt4 key购买 nike

以及 DisplayName 例如。

[DisplayName("Address line 1 ")]
public string Address1{get; set;}

Html.LabelFor(model => model.Address1)

我需要显示工具提示,例如。
[DisplayName("Address line 1 ")]
[ToolTip("The first line of your address as it appears on you bank statement")]
public string Address1{get; set;}

Html.LabelFor(model => model.Address1)
Html.ToolTipFor(model => model.Address1)

我可以扩展 DisplayName DataAnnotation 来执行此操作吗?我看不出怎么做。

谢谢!

最佳答案

这就是我要做的。一些冠军联赛的时间,如果你愿意,我明天可以澄清代码。

首先是一个属性:

public class TooltipAttribute : DescriptionAttribute
{
public TooltipAttribute()
: base("")
{

}

public TooltipAttribute(string description)
: base(description)
{

}
}

然后是一个 html 助手,允许我们编写 Html.TooltipFor():
public static class HtmlHelpers
{
public static MvcHtmlString ToolTipFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
{
var exp = (MemberExpression)expression.Body;
foreach (Attribute attribute in exp.Expression.Type.GetProperty(ex.Member.Name).GetCustomAttributes(false))
{
if (typeof(TooltipAttribute) == attribute.GetType())
{
return MvcHtmlString.Create(((TooltipAttribute)attribute).Description);
}
}
return MvcHtmlString.Create("");
}
}

用法是这样的:

您的型号:
public class User
{
[Tooltip("This is the attribute for FirstName")]
public string FirstName { get; set; }
}

在你看来:
<%= Html.ToolTipFor(x => x.FirstName) %>

关于asp.net-mvc - asp.net MVC 扩展 DataAnnotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3707997/

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