![](/img/trans.png)
[英]How to merge htmlAttributes for Html.ActionLink (MVC3)?
[英]Using HTML5 “data-” attributes with MVC3 and Html.ActionLink<TController>
因此, Html.ActionLink()
的非泛型重載似乎可以很好地與HTML5 data-
屬性配合使用,通過將帶下划線的屬性重命名為帶連字符的屬性:
如何在ASP.NET MVC中的HTML-5 data- *屬性中使用破折號
但是,這似乎不適用於強類型的Html.ActionLink<TController>()
。
所以,JQuery Mobile的鏈接
@(Html.ActionLink<HomeController>(
c => c.Index(),
"Home",
new { data_direction="reverse" } ))
給出了一個HTML源代碼
<a data_direction="reverse" href="/" class="ui-link">Home</a>
這不是我想要的。
有任何想法嗎? 沒有帶有RouteValueDictionary
重載,因此路由已經完成。
所以似乎HtmlHelper.ActionLink<TController>
上的Microsoft.Web.Mvc
擴展方法中存在一個錯誤(功能?)。 我的解決方法是:
using System;
using System.Linq.Expressions;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using System.Web.Routing;
using Authentication;
public static class LinkExtensions
{
// Named thusly to avoid conflict, I anticipate a search-and-replace later!
public static MvcHtmlString ActionLink5<TController>(this HtmlHelper helper, Expression<Action<TController>> action, string linkText, object htmlAttributes) where TController : Controller
{
RouteValueDictionary routeValuesFromExpression = Microsoft.Web.Mvc.Internal.ExpressionHelper.GetRouteValuesFromExpression<TController>(action);
return helper.RouteLink(linkText, routeValuesFromExpression, HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
}
}
當被召喚時
@(Html.ActionLink5<HomeController>(
c => c.Index(),
"Home",
new { data_direction="reverse" } ))
似乎工作得很好......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.