我想获取指定属性名称的字符串文本? 例如: 我有一个TagHelper:

public class CustomControl: TagHelper
{
[HtmlAttributeName("Items")]
public IEnumerable<object> DataItems { get; set; }

public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
   string stringText=datatitems.GetType()??? //it should result "listDataBC"
}

然后在任何页面上使用:

<customcontrol Items="listDataBC"/>

谢谢

推荐答案

您可以使用ModelExpression作为参数,并使用"@listDataBC"来获取名称和值.
CustomControl.cs

    public class CustomControl : TagHelper
    {
        [HtmlAttributeName("Items")]
        public ModelExpression expression { get; set; }

        public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
        
            var name = expression.Name;
            var value = expression.Model; 
        }
    }

Index.cshtml

@{
    var listDataBC = new List<object>()
    {
        new {Name="tom"},
        new {Name="kite"}
    };
}
<custom-control Items="@listDataBC"></custom-control>

Test result enter image description here

Csharp相关问答推荐

发布.NET框架项目将.NET核心元素注入到web. connect中

在包含空项的列表上使用具有断言T的摘要表

此反射有什么问题.是否发送值转换委托?

MudBlazor—MudDataGrid—默认过滤器定义不允许用户修改基本过滤器

Int和uint相乘得到LONG?

C#EF Core WHERE IN LINQ FROM LIST WITH.CONTAINS不返回任何内容

Docker Container中的HttpRequest后地址不可用

依赖项注入、工厂方法和处置困境

如何将FindAll()与Nuget包Interop.UIAutomationClient一起使用

如何在.NET Maui中将事件与MVVM一起使用?

用C#从XML内部元素中获取特定值

如何将%{v_扩展}转换为%{v_扩展}>>

Celler ArgumentExpression是否期望在所有情况下都捕获允许空值的运算符?

毛伊岛.NET 8图片不再适合按钮

正在try 将自定义字体添加到我的控制台应用程序

RavenDb:为什么在字符串==空的情况下过滤会过滤得太多?

如何阻止可传递依赖项出现在项目中

分别切换用于读取和写入的EF核心日志(log)

自定义ConsoleForMatter中的DI/Http上下文

从列表中跳过和获取条目的优雅方式