C#ASP.NET MVC4 TextBoxFor-extension不用连字符替换下划线

时间:2015-03-16 16:27:15

标签: c# asp.net-mvc-4 html5-data htmlextensions

我的MVC4应用程序中的TextBoxFor-extension有一些重载。该方法如下所示:

public static MvcHtmlString FormGroupTextBoxFor<TModel, TProperty>(this MyHelper<TModel> myHelper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes = null)

MyHelper内部有一个HtmlHelper属性,用于&#34; normal&#34; MVC这些我没有过载的东西。

在我创建的方法

var routeValueDict = new RouteValueDictionary(htmlAttributes) {{"class", "form-control"}};

因为我需要在这里添加一些类。

下一个电话是:

var propertyInput = myHelper.HtmlInternal.TextBoxFor(expression, routeValueDict);

调用默认的TextBoxFor()方法。

当我将扩展名称为

@My.FormGroupTextBoxFor(m => m.Name, new { @data_blur_update = "title", @data_blur_target_id = string.Format("eventName{0}", eventId) })

它不会在呈现的HTML中用data_blur_update替换data-blur-update。为什么呢?

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我改变了

var routeValueDict = new RouteValueDictionary(htmlAttributes) {{"class", "form-control"}};

var routeValueDict = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
routeValueDict.Add("class", "form-control");

然后将包含带连字符而不是下划线的正确属性。