gpt4 book ai didi

c# - 在 TagHelpers 中获取属性属性

转载 作者:太空狗 更新时间:2023-10-29 21:21:27 24 4
gpt4 key购买 nike

某些模型属性具有“必需”数据注释,我需要在 TagHelper 类中读取这些注释。

public partial class Sale
{
[Required]
public string CustomerId { get; set; }
...

在销售 View 中,我为客户创建了一个自定义选择:

<customer asp-for="CustomerId " value="@Model.CustomerId"></customer>

在 CustomerTagHelper 类中有 process 方法:

public override void Process(TagHelperContext context, TagHelperOutput output)
{

此时我如何发现当前绑定(bind)属性是否具有“必需”属性?我使用的是 asp-net core。

最佳答案

您可以通过ModelExpression 访问自定义属性。

public class CustomTagHelper : TagHelper
{
[HtmlAttributeName("asp-for")]
public ModelExpression For { get; set; }

public override void Process(TagHelperContext context, TagHelperOutput output)
{
CustomAttribute attribute = For.Metadata
.ContainerType
.GetProperty(For.Name)
.GetCustomAttribute(typeof(CustomAttribute))
as CustomAttribute;
if (attribute != null)
{
output.Attributes.Add("some-attr", attribute.Text);
}
}
}

然后在你的模板中使用它<custom asp-for="SomeProp"></custom> .

关于c# - 在 TagHelpers 中获取属性属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40506865/

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