以下使用參數文字說明:
- linkText:生成的鏈接所顯示的文字 類型:string
- actionName:對應控制器的方法 類型:string
- routeValues:向對應的action傳遞的參數 類型:object 或 RouteValueDictionary
- controlName:指定控制器的名稱 類型:string
- htmlAttributes:設置<a>標簽的屬性 類型:object 或 IDictionary
- protocol:指定訪問協議如:http等 類型:string
- hostName:指定訪問域名 類型:string
- fragment:指定訪問錨點 類型:string
重載一:Html.ActionLink("linkText","actionName")【默認當前頁面控制器】
調用:<%: Html.ActionLink("默認當前頁面控制器", "About")%>
生成效果:<a href="/Home/About">默認當前頁面控制器</a>
重載二:Html.ActionLink("linkText","actionName",routeValues)
調用:
routeValues Is object:
<%: Html.ActionLink("默認當前頁面控制器", "About", new { id = 1, type = "Dic" })%>
routeValues Is RouteValueDictionary:
<%RouteValueDictionary Dictionary = new RouteValueDictionary();
Dictionary["id"] = 1;
Dictionary["type"] = "Dic";
%>
<%: Html.ActionLink("默認當前頁面控制器", "About", Dictionary)%>
生成效果:<a href="/Home/About?classid=1">默認當前頁面控制器</a>
重載三:Html.ActionLink("linkText","actionName","controlName")
調用:<%: Html.ActionLink("默認當前頁面控制器", "About", "Home")%>
生成效果:<a href="/Home/About">默認當前頁面控制器</a>
重載四:Html.ActionLink("linkText","actionName",routeValues,htmlAttributes)
調用:
htmlAttributes Is object:
<%: Html.ActionLink("首頁", "Index", "Home", null, new { @class = "active", target = "_blank" })%>【注:由於class是保留關鍵字,所以一定要寫成@class】
htmlAttributes Is IDictionary:
<%IDictionary<string, object> AttrDictionary = new Dictionary<string, object>();
AttrDictionary["class"] = "active";
AttrDictionary["target"] = "_blank";
%>
生成效果:<a class="active" href="/" target="_blank">首頁</a>
重載五:Html.ActionLink("linkText","actionName","controlName","protocol","hostName","fragment",routeValues,htmlAttributes)
調用:<%: Html.ActionLink("關於我們", "About", "Home", "http", "localhost", "top", null, null)%>
生成效果:<a href="http://localhost:12120/Home/About#top">關於我們</a>
以上的重載並非.NET中的重載,純屬為了方便查看、比較.
另外有幾個問題沒有找到答案
1、重載五 中的調用,怎么把端口去掉;也就是生成的效果不顯示端口例如:http://www.cnblogs.com/Relict/
2、怎么在生成的鏈接中添加標簽、和生成圖片鏈接
附:
關於System.Web.Mvc.dll中LinkExtensions類的ActionLink重載
