2013-05-22 90 views
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); 
} 
+1

您可以使用[HtmlHelper.AnonymousObjectToHtmlAttributes方法](http://msdn.microsoft.com/en-us/library/system.web.mvc.htmlhelper.anonymousobjecttohtmlattributes(v = vs.108).aspx)。它用連字符代替下劃線字符。 – Zabavsky

+0

謝謝,添加一個答案,我會接受。 – SimonGates

+0

很高興我能幫到你。 – Zabavsky

回答

相關問題