2012-02-21 9 views
0

私のアプリケーションではルーティングに関する課題が多く、ここでは多くの不満や記事がありましたが、私はそれを釘付けにしていたと思っていましたが、今ではアプリケーションをテストしています。MVCアクションリンクまたは可能なルーティングの問題

私はデフォルトを下に移動し、購入ルートはトップになりましたが、私はそれが異なるパラメータのために、それが何かを壊した別のページごとにルートを作成する必要があることを発見しました。

最後の問題は、レイアウトページ(最初のページからのクリックが正しく機能する)から継承されたメニューバーの項目をクリックすると、それ以外のもので間違った結果が得られることですページ。ホームから離れて、メニューバー上のすべてのリンクのため

http://localhost:34396/Products/2/1

http://localhost:34396/Products/2/1

ページ以降与える:

最初のページはのようなリンクを提供します。

どのようなアイデアが本当に高く評価されています。それはナッツや何かを動かすだけです。私がルーティングを行っている途中でリンクをやっているのかどうか、ルーティングの仕組みが間違っているかどうかは分かりません。

乾杯、 スティーブ。

<div id="menu-wrapper"> 
    <div id="menu" class="container"> 
     <ul> 
      <li>@Html.ActionLink("Home", "Index", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
      <li>@Html.ActionLink("Products", "Products", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
      <li>@Html.ActionLink("Existing Customers", "Existing", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
      <li>@Html.ActionLink("Claims", "Claims", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
      <li>@Html.ActionLink("FAQ", "FAQ", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
      <li>@Html.ActionLink("Contact Us", "ContactUs", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
     </ul> 
    </div> 


routes.MapRoute(
"Purchase", // Route name 
"Purchase/{AgentId}/{ProductId}/{SchemeId}/{CoverTypeId}/{CoverLevelId/{SubAgentId}",  // URL with parameters 
new { controller = "Home", action = "Purchase", AgentId = UrlParameter.Optional, ProductId = UrlParameter.Optional, SchemeId = UrlParameter.Optional, CoverTypeId = UrlParameter.Optional, CoverLevel = UrlParameter.Optional, SubAgent = UrlParameter.Optional } , // Parameter defaults 
new[] { "BrochureWare.Controllers" } 
); 

routes.MapRoute(
"Products", // Route name 
"Products/{AgentId}/{SubAgentId}", // URL with parameters 
new { controller = "Home", action = "Products", AgentId = UrlParameter.Optional, 
subAgent = 0 }, // Parameter defaults 
new[] { "BrochureWare.Controllers" } 
); 

     routes.MapRoute(
"MoreInfo_Annual", // Route name 
"MoreInfo_Annual/{AgentId}/{SubAgentId}", // URL with parameters 
new { controller = "Home", action = "MoreInfo_Annual", AgentId = 
UrlParameter.Optional, SubAgent = 0 }, // Parameter defaults 
new[] { "BrochureWare.Controllers" } 
); 

      routes.MapRoute(
"FAQ", // Route name 
"FAQ/{AgentId}/{SubAgentId}", // URL with parameters 
new { controller = "Home", action = "FAQ", AgentId = UrlParameter.Optional, SubAgent = 
0 }, // Parameter defaults 
new[] { "BrochureWare.Controllers" } 
); 

      routes.MapRoute(
"Existing", // Route name 
"Existing/{AgentId}/{SubAgentId}", // URL with parameters 
new { controller = "Home", action = "Existing", AgentId = UrlParameter.Optional, 
SubAgent = 0 }, // Parameter defaults 
new[] { "BrochureWare.Controllers" } 
); 

      routes.MapRoute(
"ContactUs", // Route name 
"ContactUs/{AgentId}/{SubAgentId}", // URL with parameters 
new { controller = "Home", action = "ContactUs", AgentId = UrlParameter.Optional,  
SubAgent = 0 }, // Parameter defaults 
new[] { "BrochureWare.Controllers" } 
); 

      routes.MapRoute(
"Claims", // Route name 
"Claims/{AgentId}/{SubAgentId}", // URL with parameters 
new { controller = "Home", action = "Claims", AgentId = UrlParameter.Optional, 
SubAgent = 0 }, // Parameter defaults 
new[] { "BrochureWare.Controllers" } 
); 

      routes.MapRoute(
"Default", // Route name 
"{AgentShortCode}/{referid}", // URL with parameters 
new { controller = "Home", action = "Index", AgentShortCode = "Steve", referid = 1 
}, 
// Parameter defaults 
new[] { "BrochureWare.Controllers" } 
); 

答えて

0

あなたはHtml.RouteLink @使用し、使用したいルートを選択するASP.NETを強制するために、リンク先のルートの名前を指定することができます。

は、だから、このような何か行うことができます:

<div id="menu-wrapper"> 
    <div id="menu" class="container"> 
     <ul> 
      <li>@Html.RouteLink("Home", "Default", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
      <li>@Html.RouteLink("Products", "Products", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
      <li>@Html.RouteLink("Existing Customers", "Existing", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
      <li>@Html.RouteLink("Claims", "Claims", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
      <li>@Html.RouteLink("FAQ", "FAQ", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
      <li>@Html.RouteLink("Contact Us", "ContactUs", new { AgentId = ViewData["AgentId"], SubAgentId = ViewData["ReferId"] })</li> 
     </ul> 
    </div> 
+1

おかげで、部分的に働いていたが、しかし、あなたは下のレベルにナビゲートした後、まだ問題を得るには、私は全体的にそのルーティングの問題を考えるが、私は持っていることによって、それを中心に取り組んできました2つのレイアウト、メインと他のすべてのページのレイアウト。私はそれを無駄にして何時間も迷惑を掛けたときに治療をし、再訪するかもしれません。 –

関連する問題