4
我想htmlAttributes为object
传递给像这样的方法......如何获得有效的HTML属性out对象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方法](http://msdn.microsoft.com/en-us/library/system.web.mvc.htmlhelper.anonymousobjecttohtmlattributes(v = vs.108).aspx)。它用连字符代替下划线字符。 – Zabavsky
谢谢,添加一个答案,我会接受。 – SimonGates
很高兴我能帮到你。 – Zabavsky