おそらく、アクション リンクは次のようにレンダリングされます。
<a href="home/display/1" class="h1">Move to display.aspx</a>
<a href="display">Move to display.aspx</a>
それらの違いは、最初のものには、(タグではなく) スタイル クラスに設定された css クラスがありh1
、URL の id パラメータとして 1 を渡すホーム コントローラーの表示アクション メソッドに行くことです。2 つ目は、表示アクション メソッド (ホーム コントローラーのビューにある場合は、ホーム コントローラーの表示アクション メソッドに移動します) に移動し、css クラスが設定されていません。どちらのアクション リンクも、テキストを としてレンダリングしていますMove to display.aspx
。この場合の htmlAttributes は、h1 クラスによって設定された css がない場合、違いはありません。
何ができますか
まず、次のように、css ファイルに有効な名前のスタイルシートを作成します。
.display {
color: blue;
/* other css properties*/
}
ビューで、このスタイルシートがclass
属性に設定されたリンクをレンダリングします。
<%=Html.ActionLink("Move To Display", "Display", "Home", new { id = 1 }, new { @class="display" }) %>
html属性について
htmlAttributes パラメータは、要素に設定する HTML 属性を含むオブジェクトです。rel
サンプルとして、出力リンクに css クラスを追加する場合は、 、title
、tabindex
、などの JavaScript イベントなどのこのパラメータでこの属性を追加できますonclick
。
Html.ActionLink
メソッドに多くのオーバーロードがあります。このパラメーターを渡す必要はありませんが、このパラメーターを持つオーバーロードが必要な場合は、渡すだけnull
で何も HTML に出力されません。これを行う場合:
@Html.ActionLink("Text Link", "Action", "Controller", new { id = 5 }, new { @class = "button", title = "Some Title Content", rel = "10" })
次の署名方法になる場合:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
Object routeValues,
Object htmlAttributes
)
レンダリングします
<a href="Controller/Action/5" class="button" title="Some Title Content" rel="10">Text Link</a>