Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将HTML属性添加到匿名类型而不更改方法签名_C#_Asp.net Mvc_Razor_Extension Methods_Html Helper - Fatal编程技术网

C# 将HTML属性添加到匿名类型而不更改方法签名

C# 将HTML属性添加到匿名类型而不更改方法签名,c#,asp.net-mvc,razor,extension-methods,html-helper,C#,Asp.net Mvc,Razor,Extension Methods,Html Helper,我有一个为MVC/Razor网站编写的HtmlHelper扩展方法。方法签名如下: public static IHtmlString CharacterCountOf<TModel, TProperty>( this HtmlHelper<TModel> htmlHelper, Func<Expression<Func<TModel, TProperty>>, object, IHtmlString>

我有一个为MVC/Razor网站编写的HtmlHelper扩展方法。方法签名如下:

public static IHtmlString CharacterCountOf<TModel, TProperty>(
        this HtmlHelper<TModel> htmlHelper,
        Func<Expression<Func<TModel, TProperty>>, object, IHtmlString> helperMethod,
        Expression<Func<TModel, TProperty>> expression,
        object htmlAttributes){}
我遇到的所有解决方案要么将htmlAttributes更改为
IDictionary
,这样对方法签名不起作用,要么要求您知道匿名类型是如何构造的

以下是我尝试/研究过的一些不同方法:或

既然有人在这里提出这一点,我就要问这个问题: 此方法用于生成计算文本框/区域中的字符数并在右下角显示该数字的HTML/JS。我最初用HTML/JS编写了所有代码,但当我重构现有的文本输入时,我发现实现此功能所需的步骤数量既烦人又繁琐。我可以使用C#来始终包含使这项工作成功的恼人的部分。使用新方法,重构并将此功能添加到新的文本输入变得非常容易


最初,我尝试在name属性上触发JS事件,该属性生成
$([name='Description'])。在('keyup')
上,它工作得很好,直到在DOM中有多个元素具有该属性和值时,我遇到了一个问题。因此,我需要一种向HTML元素添加唯一标识符的方法,JS将使用该标识符查看文本输入。

也许您还需要解释
X
。我将修改我的问题。
var identifier = Guid.NewGuid().ToString();
// somehow add identifier to htmlAttributes
helperMethod(expression, htmlAttributes)