0
我在應用程序的路由中遇到了很多挑戰,並且在這裏遇到了很多挫折和文章,我以爲我已經釘了它,但現在已經測試了我的應用程序,最後有一個小故障。MVC動作鏈接或可能的路由問題
我將默認值移動到底部,並將購買路線移動到頂部,然後我發現由於參數不同,我需要爲每個頁面創建一個路線,以便打破某些內容。
我遇到的最後一個問題是,一旦您點擊從佈局頁面繼承的菜單欄項目(從第一個頁面的任何點擊都可以正常工作),您就會在除了Home之外的其他任何事項上得到錯誤的結果頁面。
第一頁給出了類似的鏈接:
http://localhost:34396/Products/2/1
後續頁面給出:
http://localhost:34396/Products/2/1從家裏除了菜單欄上的每一個環節。
任何想法真的很感激,它驅使我堅果和我做的任何事情只是打破它更多,不知道是否因爲我在做我的路由鏈接或它的一個fundemental錯誤的方式。
乾杯, Steve。
<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" }
);
謝謝,部分工作,但仍然得到問題,一旦你導航下降一個等級,我覺得它的路由問題的整體,但我已經有圍繞它的工作兩種佈局,一種是主要的,另一種是所有其他頁面。作品是一種享受,我可以在不浪費多少時間的情況下重新討論。 – 2012-02-21 22:36:54