3

html.actionlink に問題があります。2 つのルートが定義されています。

routes.MapRoute(
                "AdminDefault",
                "Admin/{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
routes.MapRoute(
                "Default",
                "{controller}/{action}/{id}",
                new { controller = "Page", action = "Details", id = "0" }
            );

アクションリンクは、デフォルトコントローラーを使用したいときに、AdminDefault を使用しています。routelink を使用せずにデフォルト ルートを使用するにはどうすればよいですか?

さらに情報を追加するには。シンプルなアクション (home/index) があり、ビュー (index.cshtml) が表示されます。そのビューには次のようなものがあります。

@Html.ActionLink("About", "About", "Home")

「/Home/About」にしたい場合、「/Admin/Home/About」の URL を生成します。defaultadmin ルートは、管理ページの /admin/controller/action に移動するリンクを後で作成できるようにするためのものです。しかし、デフォルトで生成された URL を管理下に置かないようにしたいと考えています。

4

1 に答える 1

2

エリア内にあるビューからHtml.ActionLinkを使用すると、デフォルトでそのエリアがそのリンクに渡されます。

これをオーバーライドするには、次のようにHtml.ActionLinkを呼び出すことができます。

@Html.ActionLink("linkText", "actionName", "controllerName", new {Area = "AreaName"}, null);

ここで、「new {Area = "AreaName"}」はルートオブジェクトの値であり、「null」はhtml属性です。

したがって、「new {Area=""}」を使用できます。

于 2012-04-08T01:48:19.027 に答える