В моето MVC приложение имам помощен клас, предназначен да рендира група от свързани бутони. Опитвам се да предам 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
обекта и да анализирам резултата, но това изглежда доста глупаво. Как мога програмно да конвертирам анонимен обект в HTML атрибути в стил key="value"
? Има ли съществуваща помощна програма за това?