我使用Microsoft.AspNet.FriendlyUrls在ASP.NET c#WebForms中工作,但所有页面都不。
以下是一个例子:
routes.MapPageRoute("List/{Location}/{ZipCode}/", "List/{Location}/{ZipCode}/", "~/List.aspx");
在page_load中的上述页面(List.aspx)中,Page.RouteData中没有values.count。
Page.RouteData.Values.Count == 0
我在同一网站上有另一页与此信息匹配:
routes.MapPageRoute("{Location}/{ZipCode}/{Name}/{LocID}/{ID}/{Code}/", "{Location}/{ZipCode}/{Name}/{LocID}/{ID}/{Code}/", "~/place.aspx");
此页面(place.aspx)始终显示正确的路径计数。
在调试模式的List页面上,我检查了查询字符串和位置,ZipCode就在那里。
那么,什么可能导致Page.RouteData不在一个页面中显示但在另一个页面中可用?
答案 0 :(得分:7)
我是url路由的新手,但我想我遇到了类似的问题,并找到了解决方案。你试过了吗?
routes.MapPageRoute("ListDetails/{Location}/{ZipCode}/", "ListDetails/{Location}/{ZipCode}/", "~/List.aspx");
而不是
routes.MapPageRoute("List/{Location}/{ZipCode}/", "List/{Location}/{ZipCode}/", "~/List.aspx");
在我的情况下,我有:
routes.MapPageRoute(
"ImageDelete",
"Admin/Images/Delete/{nameToKill}",
"~/Admin/Images.aspx"
);
显示Page.RouteData.Values始终为空。
当我将其更改为
时routes.MapPageRoute(
"ImageDelete",
"Admin/Image/Delete/{nameToKill}", // mind the missing 's'
"~/Admin/Images.aspx"
);
有效!
我认为该路线可能不会以实际存在的网站的网址开头。