При написании расширения HtmlHelper, если я хочу, чтобы поддержать так же структурированные ctors для моего метода расширения HtmlHelper, я использую RouteValueDictionary
следующим образом:методы 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))
}
Очевидно, что это ярлык, но это укол или это нормально?
Спасибо, Дэн, это выглядит интересно, и я посмотрю. Я отредактировал свой вопрос, потому что я не сказал, что я слежу за тем, что уже было в помощниках mvc framework. –
Huh. Я искал это снова для другого проекта и нашел свой собственный ответ! Какая удача! –
+1 Спасибо, помог мне в проекте ... – xandercoded