C# 将HTML属性添加到匿名类型而不更改方法签名
我有一个为MVC/Razor网站编写的HtmlHelper扩展方法。方法签名如下: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>
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)