4

我想将 htmlAttributes 作为object一个方法传递给这样的方法......

     foo.HtmlAttributes(new { data_bind = "foo"});

在所有 MVC HtmlHelpers 中,我使用下划线作为连字符,这将输出有效的 html"data-bind"

根据以下问题,这就是正在发生的事情:

如何从对象 HtmlAttributes 中获取值

将对象传递给 HTML 属性

    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);
}
4

1 回答 1

6

HtmlHelper类具有AnonymousObjectToHtmlAttributes方法,该方法有助于创建符合 HTML5 的标记。该方法用连字符替换下划线字符。

于 2013-05-22T12:35:56.017 回答