编程语言
首页 > 编程语言> > c# – 当属性为“data- *”时,如何从对象htmlAttributes中获取有效的HTML属性

c# – 当属性为“data- *”时,如何从对象htmlAttributes中获取有效的HTML属性

作者:互联网

我想将htmlAttributes作为对象传递给像这样的方法……

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

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

在幕后,这是根据以下问题进行的:

How to get values out of object HtmlAttributes

Passing an object to HTML attributes

    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?

UPDATE
感谢Zabavsky ……

public virtual void HtmlAttributes(object htmlAttributes)
{      
        this.Attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
}

解决方法:

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

标签:c,asp-net-mvc,html-helper
来源: https://codeday.me/bug/20190529/1178215.html