У меня было несколько проблем с маршрутизацией в моем приложении, и с большим количеством разочарований и статей здесь, я думал, что прибил его, но теперь, когда я протестировал свое приложение, у меня есть последний сбой.
Я переместил значение по умолчанию в нижнюю часть, а маршрут покупки - в верхнюю, и затем обнаружил, что из-за различных параметров мне нужно было создать маршрут для каждой другой страницы, он что-то сломал.
Последняя проблема, с которой я столкнулся, заключается в том, что после того, как вы щелкнете по элементу строки меню, унаследованному от страницы макета (любой щелчок с первой страницы работает правильно), вы получите неправильный результат на любом другом месте, кроме Home на последующих страницах. .
Первая страница дает ссылку как:
http://localhost:34396/Products/2/1
Последующие страницы дают:
http://localhost:34396/Products/2/1 для каждой ссылки в строке меню, кроме Home.
Любые идеи действительно ценятся, это сводит меня с ума, и все, что я делаю, просто ломает их еще больше, не уверен, что это из-за того, как я делаю ссылки, или из-за фундаментальной ошибки в моей маршрутизации.
Ура,
Стив.
<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" }
);