Dictionary ASP.NET MVC多个路由和无效的路由字典值
我有多个路径来显示有关商店和产品信息的详细信息。它在Global.asax上的定义如下Dictionary ASP.NET MVC多个路由和无效的路由字典值,dictionary,routes,Dictionary,Routes,我有多个路径来显示有关商店和产品信息的详细信息。它在Global.asax上的定义如下 routes.MapRoute("DetailProduct", "{controller}/{action}/{ProductGUID}/{CategoryGUID}/{StoreGUID}/{UserID}", new { controller = "Home", action = "DetailProducts",
routes.MapRoute("DetailProduct",
"{controller}/{action}/{ProductGUID}/{CategoryGUID}/{StoreGUID}/{UserID}",
new {
controller = "Home", action = "DetailProducts",
ProductGUID = UrlParameter.Optional,
CategoryGUID = UrlParameter.Optional,
UserID = UrlParameter.Optional,
});
routes.MapRoute("StoreInfo", "{controller}/{action}/{StoreGUID}/{StoreCountryLocation}/{StoreName}/{StoreUserID}",
new
{
controller = "Home",
action = "DetailStore",
StoreGUID = UrlParameter.Optional,
StoreCountryLocation = UrlParameter.Optional,
StoreName = UrlParameter.Optional,
StoreUserID = UrlParameter.Optional
}
);
以下超链接在ASPX文件上定义,用于执行这些映射路由StoreInfo和DetailProduct
Storeinfo
<a href=<%: Url.RouteUrl("StoreInfo", new RouteValueDictionary(new { Controller = "Home", Action = "DetailStore", StoreGUID = itemList.StoreGUID, StoreCountryLocation = itemList.Country, StoreName = itemList.StoreName, StoreUserID = itemList.UserID }))%>>
</a>
您能提供建议吗?我很确定您的参数中存在冲突。因为您已将所有内容标记为可选,甚至控制器和操作都是“动态”的 看起来您的目标是固定操作,因此您可以像这样执行maproutes:
routes.MapRoute("DetailProduct",
"Home/DetailsProducts/{ProductGUID}/{CategoryGUID}/{StoreGUID}/{UserID}",
new {
ProductGUID = UrlParameter.Optional,
CategoryGUID = UrlParameter.Optional,
UserID = UrlParameter.Optional,
});
routes.MapRoute("StoreInfo", "Home/DetailStore/{StoreGUID}/{StoreCountryLocation}/{StoreName}/{StoreUserID}",
new
{
StoreGUID = UrlParameter.Optional,
StoreCountryLocation = UrlParameter.Optional,
StoreName = UrlParameter.Optional,
StoreUserID = UrlParameter.Optional
}
);
删除星号,它们不应用粗体。detailProduct路由的字典中没有storeguid。达拉斯,很抱歉忘记将storeguid放入字典中。问题仍然存在。
?RouteData.Values.Keys
Count = 6
[0]: "controller"
[1]: "action"
[2]: "ProductGUID"
[3]: "CategoryGUID"
[4]: "StoreGUID"
[5]: "UserID"
routes.MapRoute("DetailProduct",
"Home/DetailsProducts/{ProductGUID}/{CategoryGUID}/{StoreGUID}/{UserID}",
new {
ProductGUID = UrlParameter.Optional,
CategoryGUID = UrlParameter.Optional,
UserID = UrlParameter.Optional,
});
routes.MapRoute("StoreInfo", "Home/DetailStore/{StoreGUID}/{StoreCountryLocation}/{StoreName}/{StoreUserID}",
new
{
StoreGUID = UrlParameter.Optional,
StoreCountryLocation = UrlParameter.Optional,
StoreName = UrlParameter.Optional,
StoreUserID = UrlParameter.Optional
}
);