2012-04-07 14 views
3

私はhtml.actionlinkに問題があります。 私は定義された2つのルートがあります。asp.net mvc誤ったルートを使用しているアクションリンク

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" } 
      ); 

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

詳細を追加するには

私が欲しいとき「について/管理/ホーム/」のURLを生成
@Html.ActionLink("About", "About", "Home") 

:私は、単純なアクション(ホーム/インデックス)を持っている、それは私が持っていることを考慮すると、ビュー(index.cshtml)を示し、それは "/ Home/About"になるようにdefaultadminルートがあるので、管理ページの/ admin/controller/actionに行くリンクを後で作成することができますが、デフォルトの生成URLをadminにしないでください。

答えて

2

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

は、あなたがそうのようにHtml.ActionLink呼び出すことができ、これを上書きするには、次の新しい{エリア= 『AREANAMEは』} '

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

は、ルートオブジェクトは 値と「NULL」HTML属性があります。

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

+0

私はエリアを使用していません。 – Solmead

+0

ああ、私は誤解しました。その場合は、既存のルールを交換し、管理ページのルートを手動で作成する必要があります。または、管理領域を追加することもできます。 –

関連する問題