1

私は最初の MVC3 Web アプリケーションの 1 つを作成しています。SiteLayout.cshtml でナビゲーションをそのようにコーディングしました。

<table width="950" border="0" align="center" cellpadding="0" cellspacing="0" style="height: 40px;">
            <tr align="center">
                <td>@Html.ActionLink( 
                    "Home", 
                    "Index", 
                    null, 
                    new { @class= "link1"}) 
                </td>
                <td><img src="@Url.Content("~/Content/images/img3.gif")" alt="" width="2" height="40" /></td>
                <td>@Html.ActionLink( 
                    "Events", 
                    "Events", 
                    null, 
                    new { @class= "link1"}) 
                </td>
                <td><img src="@Url.Content("~/Content/images/img3.gif")" alt="" width="2" height="40" /></td>
                <td>@Html.ActionLink( 
                    "Membership", 
                    "Membership", 
                    null, 
                    new { @class= "link1"}) 
                </td>
                <td><img src="@Url.Content("~/Content/images/img3.gif")" alt="" width="2" height="40" /></td>
                <td>@Html.ActionLink( 
                    "Photos", 
                    "Photos", 
                    null, 
                    new { @class= "link1"} )
                </td>
                <td><img src="@Url.Content("~/Content/images/img3.gif")" alt="" width="2" height="40" /></td>
                <td>@Html.ActionLink( 
                    "About Us", 
                    "AboutUS", 
                    null, 
                    new { @class= "link1"})
                </td>
                <td><img src="@Url.Content("~/Content/images/img3.gif")" alt="" width="2" height="40" /></td>
                <td>@Html.ActionLink( 
                    "Contact Us", 
                    "ContactUs", 
                    null, 
                    new { @class= "link1"})</td>
            </tr>
        </table>``

同じlayout.cshtmlを使用する2番目のコントローラー登録に切り替えるたびに、アクションリンクによって返される結果は

http://localhost:49365/registration/Photos

現在登録コントローラー上にある場合でも、アクション リンクがサイト コントローラーを指すようにするにはどうすればよいですか? 現在null値がある場所に「サイト」を配置しようとしました。私がそれを行うと、正しく動作しますが、このURLが表示されます

http://localhost:49365/Site/Photos?class=link1

css クラスはリンクに適用されなくなりました。私が望んでいるURLは同じURLです

http://localhost:49365/site/photos

これは、既定のサイト コントロールからのリンクを使用していた場合に表示されます。ガイダンスをいただければ幸いです。

多くの祝福、

ジャレド

4

1 に答える 1

1

これは単純にオーバーロードの解決の問題です。すべてのオーバーロードのリストはMSDNにあります。

書かれているように、HtmlHelper, string, string, object, object オーバーロードを使用することになり、最初nullは であるrouteValuesため、匿名オブジェクトはあなたのhtmlAttributes.

適切なコントローラーを取得するの"Site"ではなく、正しい軌道に乗っていますが、これにより、オーバーロードを使用するようになります。最初のオブジェクトはまだであり、これがクエリ文字列になる理由を説明しています。nullHtmlHelper, string, string, string, object, object routeValues

を指定するには、引き続きプレースホルダーをhtmlAttributes渡します。nullrouteValues

@Html.ActionLink( 
                "Photos", 
                "Photos",
                "Site", 
                null, 
                new { @class= "link1"} )

または、名前付き引数を使用しました

@Html.ActionLink( 
                "Photos", 
                "Photos",
                "Site", 
                htmlAttributes: new { @class= "link1"} )
于 2012-04-25T20:58:06.113 に答える