我想将 htmlAttributes 作为object
一个方法传递给这样的方法......
foo.HtmlAttributes(new { data_bind = "foo"});
在所有 MVC HtmlHelpers 中,我使用下划线作为连字符,这将输出有效的 html"data-bind"
根据以下问题,这就是正在发生的事情:
public virtual void HtmlAttributes(object htmlAttributes)
{
this.Attributes = new RouteValueDictionary(htmlAttributes);
}
然后后者将被称为:
internal virtual void ApplyConfiguration(TagBuilder tag)
{
tag.MergeAttributes(this.Attributes);
}
然而这会输出:
<div data_bind="foo"></div>
如何输出有效的 HTML?
更新 感谢扎巴夫斯基...
public virtual void HtmlAttributes(object htmlAttributes)
{
this.Attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
}