При написании расширения htmlhelper, если я хочу поддерживать схожие структурированные ctors для моего метода расширения htmlhelper, я использую RouteValueDictionary
следующим образом:
public static string ListBoxDict(this HtmlHelper htmlHelper,
string name,
object value,
object htmlAttributes)
{
return ListBoxDict(htmlHelper,
name,
value,
((IDictionary<string, object>)
new RouteValueDictionary(htmlAttributes)));
}
Мой вопрос действительно заключается в том, почему нужно RouteValueDictionary
... Я знаю, что вы не можете просто привести htmlAttributes
к IDictionary<string, object>
... хотя я не уверен, почему, и это может быть именно там Я в замешательстве. Не должно ли RouteValueDictionary
быть связано с маршрутизацией и, следовательно, не иметь ничего общего с методами HtmlHelper? Как я уже сказал, я, вероятно, упускаю суть, поэтому я был бы рад, если бы кто-то мог сказать мне, что я пропустил.
Приветствия ...
изменить: в ответ на ответ Дэна ->
Я просто следовал тому, что видел в использовании в исходном коде mvc для помощников ввода ...
- см. "
src\SystemWebMvc\Mvc\Html\InputExtensions.cs
"
Это делается следующим образом:
public static string TextBox(this HtmlHelper htmlHelper,
string name,
object value,
object htmlAttributes)
{
return TextBox(htmlHelper,
name,
value,
new RouteValueDictionary(htmlAttributes))
}
Ясно, что это ярлык, но это подлость или нормально?