0

私は MVC が初めてで、asp.net で MVC 2.0 を使用しています。

これは stylesheet1.css の内容です:

.h1{color:Red;}

これは、display.aspx の内容です。

< head runat="server">
<## Heading ##link href="../../Content/StyleSheet1.css" rel="stylesheet" type="text/css" />
< /head> 
<## body>
<## h1 class="h1">Hiiiiiiiiiiiiiiiii  <## /h1>
<## /body>

これは、index.aspx の内容です。

##<%= Html.ActionLink("Move to display.aspx","display","home",new {id=1}, new 
{@class="h1"}) %>

##<%= Html.ActionLink("Move to display.aspx", "display")%>

私の質問は、上記の両方のリンクで同じ結果が得られることがわかったため、メソッドよりもhtmlattributes引数を使用することです。html.actionlink

4

3 に答える 3

1

おそらく、アクション リンクは次のようにレンダリングされます。

<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 クラスを追加する場合は、 、titletabindex、などの 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>
于 2013-01-03T10:28:18.737 に答える
0

リンクに割り当てているクラスh1は、ブラウザのデフォルト スタイルシートによってオーバーライドされています。(これについて詳しく知りたい場合は、 css の特異性を読んでください)。

CSS クラス定義を次のように変更するだけです。

a.h1{color:Red;}

a(定義の前にあることに注意してください)

このリンクのテキスト:

<%= Html.ActionLink("Move to display.aspx","display","home",new {id=1}, new 
{@class="h1"}) %>

赤になります。

于 2013-01-03T13:39:00.887 に答える
0

グーグルで検索すると、次のような記事がたくさんあります。

Html.ActionLink で CSS を使用する

ActionLink html属性

MVC HTML ヘルパー

これらがあなたに役立つことを願っています。

于 2013-01-03T09:18:28.097 に答える