Según this question, se supone que tengo que ser capaz de escribir algo como esto:¿Se ha roto el uso de los atributos HTML-5 data- * en ASP.NET MVC 4 (beta)?
@Html.ActionLink("Delete", "Delete", "Message", new { data_id=id, @class="delete" })
o como un usuario feliz T4MVC puede hacer:
@Html.ActionLink("Delete", MVC.Message.Actions.Delete(), new { data_id=id, @class="delete" })
y obtener el subrayado en "data_id" reemplazado durante la representación:
<a href="/message/delete" class="delete" data-id="42">Delete</a>
Sin embargo, esto parece no funcionar en la MVC 4 beta. ¿Alguien más está viendo este problema?
¿Es un cambio intencional, y si es así, qué debo hacer en su lugar?
ACTUALIZACIÓN - Cómo corregir (manual)
he aplicado los siguientes cambios en el archivo T4MVC.tt, que soluciona el problema en el código generado:
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));
}
ACTUALIZACIÓN 2 - CORREGIR DISPONIBLE
David Ebbo fue rapidísimo al responder a the reported issue y ya ha combinado el arreglo anterior en T4MVC.
ACTUALIZACIÓN 3 - fijar el FIX
bastante embarazosamente, el arreglo original presentado de hecho no funciona, ya que todavía se llama una sobrecarga válida. Ahora modifiqué el código para hacer lo mismo que MVC internamente (usando su método de ayuda) y notifiqué a David que lo incluyera en T4MVC. Tome 2.6.70 de codeplex o actualice usando NuGet cuando se publique, probablemente en breve.
Prefiero escribir Delete directamente .. @ Html.ActionLink() no es compatible con la interfaz de usuario. –
Pero tampoco lo es