0

我的 MVC4 应用程序中的 TextBoxFor 扩展有某种重载。该方法如下所示:

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()方法。

当我打电话给分机时

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

它不会替换呈现的 HTML 中的data_blur_updatewith 。data-blur-update为什么?

我在这里想念什么?

4

1 回答 1

0

我变了

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

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

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

于 2015-03-17T12:22:11.927 回答