在我的MVC應用程序中,我有一個幫助器類,用於呈現一組相關的按鈕。我想在按鈕的HTML屬性傳遞作爲一個匿名對象:如何將匿名對象轉換爲鍵/值對或HTML屬性?
new { @class="myClass1 myClass2" }
助手發出HTML作爲MvcHtmlString
,這我目前正在建設這樣的:
foreach (var b in _buttons)
{
sb.AppendFormat("<button type='submit' name='{0}' {1}>{2}</button>",
b.Value,
b.HtmlAttributes,
b.Text);
}
我的問題是,上面的代碼會產生無效的HTML:
<button type='submit' name='Foo' { class = myClass1 myClass2 }>Bar</button>
不幸的是,因爲它傳遞給助手爲object
,我沒有類型信息的工作。我可以用ToString
這個對象解析結果,但是這看起來很愚蠢。如何以編程方式將匿名對象轉換爲key="value"
樣式的HTML屬性?是否有這樣的現有工具?
我沒有在最終版本中使用TagBuilder,但感謝讓我知道它存在。 +1。 – 2012-02-29 19:22:56
更新:這不是我用過的方法,但那是因爲我的情況有點獨特。 'TagBuilder'是最佳實踐,所以我接受了這個答案。 – 2012-03-30 13:56:37
你太棒了。 – 2012-12-20 21:20:37