我的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
。为什么呢?
我在这里缺少什么?
答案 0 :(得分:0)
我改变了
var routeValueDict = new RouteValueDictionary(htmlAttributes) {{"class", "form-control"}};
到
var routeValueDict = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
routeValueDict.Add("class", "form-control");
然后将包含带连字符而不是下划线的正确属性。