// // 摘要: // 返回包含指定操作的虛擬路徑的定位點元素(a 元素)。 // // 參數: // htmlHelper: // 此方法擴展的 HTML 幫助器實例。 // // linkText: // 定位點元素的內部文本。 // // actionName: // 操作的名稱。 // // routeValues: // 一個包含路由參數的對象。通過檢查對象的屬性,利用反射檢索參數。該對象通常是使用對象初始值設定項語法創建的。 // // 返回結果: // 一個定位點元素(a 元素)。 // // 異常: // System.ArgumentException: // linkText 參數為 null 或為空。 public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues);
該方法會調用當前controller的名為actionname的action方法,同時傳遞routedValues為參數至該方法。
比如:
@Html.ActionLink("投資申請", "AddInvest", Model.Investors.FirstOrDefault())
對應Action定義如下,接受參數類型需與傳遞參數類型一致:
public ActionResult AddInvest(InvestorInfo investor)
那如果只想傳遞一個簡單類型參數,比如int,該怎么辦呢?
Action定義如下:
public ActionResult CSR2Detail(int contractID)
調用時應該這樣:
@Html.ActionLink("復核", "CSR2Detail", new { contractID = @myModel.ContractID })
因為第3個參數routedValues必須為一個object,執行時通過反射檢索該對象中的屬性來進行參數的映射,所以這里我們需要構造一個包含一個contractID屬性的匿名類對象進行傳遞