C# ASP.NET MVC4 TextBoxFor-расширение, не заменяющее подчеркивания дефисами
У меня какая-то перегрузка для расширения TextBoxFor в моем приложении MVC4. Метод выглядит так:
public static MvcHtmlString FormGroupTextBoxFor<TModel, TProperty>(this MyHelper<TModel> myHelper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes = null)
MyHelper имеет внутреннее свойство HtmlHelper, используемое для "нормального" MVC-содержимого, для которого у меня нет перегрузки.
В методе я создаю
var routeValueDict = new RouteValueDictionary(htmlAttributes) {{"class", "form-control"}};
потому что мне нужно добавить несколько классов здесь.
Следующий звонок:
var propertyInput = myHelper.HtmlInternal.TextBoxFor(expression, routeValueDict);
Который вызывает по умолчанию TextBoxFor()
метод.
When I call the extension like
@My.FormGroupTextBoxFor(m => m.Name, new { @data_blur_update = "title", @data_blur_target_id = string.Format("eventName{0}", eventId) })
it won't replace the data_blur_update
с data-blur-update
в отображаемом HTML. Зачем?
Что мне здесь не хватает?
1 ответ
Я изменился
var routeValueDict = new RouteValueDictionary(htmlAttributes) {{"class", "form-control"}};
в
var routeValueDict = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
routeValueDict.Add("class", "form-control");
который затем будет содержать правильные атрибуты с дефисами вместо подчеркивания.