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");

который затем будет содержать правильные атрибуты с дефисами вместо подчеркивания.

Другие вопросы по тегам