asp.net – Page.RouteData.Values对于一个页面是空的而不是另一个页面

前端之家收集整理的这篇文章主要介绍了asp.net – Page.RouteData.Values对于一个页面是空的而不是另一个页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用Microsoft.AspNet.FriendlyUrls在ASP.NET c#WebForms中使用Routing,但不是所有页面都使用.

这是一个例子:

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不在一个页面显示但在另一个页面中可用?

解决方法

我是url路由的新手,但我想我遇到了类似的问题,并找到了解决方案.你有没有尝试过:
routes.MapPageRoute("ListDetails/{Location}/{ZipCode}/","ListDetails/{Location}/{ZipCode}/","~/List.aspx");

代替

routes.MapPageRoute("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"
);

有效!

我认为该路线可能不是以实际存在的网站的URL开头.

猜你在找的asp.Net相关文章