Is использование атрибутов HTML-5 data-*, нарушенных в ASP.NET MVC 4 (бета-версия)?

Согласно этому вопросу, я должен быть можно написать что-то вроде этого:

@Html.ActionLink( "Delete", "Delete", "Message", new { data_id=id, @class="delete" } )

или как может сделать счастливый пользователь T4MVC:

@Html.ActionLink( "Delete", MVC.Message.Actions.Delete(), new { data_id=id, @class="delete" } )

И заменить подчеркивание в «data_id» во время рендеринга:

Delete

Однако, похоже, это не работает в бета-версии MVC 4. Кто-нибудь еще сталкивался с этой проблемой?

Является ли это преднамеренным изменением, и если да, то w шляпу я должен сделать вместо этого?

ОБНОВЛЕНИЕ – КАК ИСПРАВИТЬ (ВРУЧНУЮ)

Я внес следующие изменения в файл T4MVC.tt, которые устраняют проблему в сгенерированном коде:

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, ActionResult result, object htmlAttributes, string protocol = null, string hostName = null, string fragment = null) {
    //was: return ActionLink(htmlHelper, linkText, result, new RouteValueDictionary(htmlAttributes), protocol, hostName, fragment);
    return htmlHelper.RouteLink(linkText, null, protocol, hostName, fragment, result.GetRouteValueDictionary(), HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
}

ОБНОВЛЕНИЕ 2 – ИСПРАВЛЕНИЕ ДОСТУПНО

Дэвид Эббо молниеносно отреагировал на сообщение о проблемеи уже объединил указанное выше исправление в T4MVC.

ОБНОВЛЕНИЕ 3 — ИСПРАВЛЕНИЕ ИСПРАВЛЕНИЯ

К сожалению, исходное представленное исправление на самом деле не работало, так как по-прежнему вызывало недопустимую перегрузку. Теперь я изменил код, чтобы сделать то же самое, что MVC делает внутри (используя их вспомогательный метод), и уведомил Дэвида, чтобы он был включен в T4MVC. Возьмите 2.6.70 из codeplexили обновите с помощью NuGet, когда он будет выпущен, возможно, в ближайшее время.

8
задан Community 23 May 2017 в 12:29
поделиться