Jer*_*one 4 asp.net friendly-url url-routing
我使用Microsoft.AspNet.FriendlyUrls在ASP.NET c#WebForms中使用Routing,但不是所有页面都使用.
这是一个例子:
routes.MapPageRoute("List/{Location}/{ZipCode}/", "List/{Location}/{ZipCode}/", "~/List.aspx");
Run Code Online (Sandbox Code Playgroud)
在page_load中的上述页面(List.aspx)中,Page.RouteData中没有values.count.
Page.RouteData.Values.Count == 0
Run Code Online (Sandbox Code Playgroud)
我在同一网站上有另一页与此信息匹配:
routes.MapPageRoute("{Location}/{ZipCode}/{Name}/{LocID}/{ID}/{Code}/", "{Location}/{ZipCode}/{Name}/{LocID}/{ID}/{Code}/", "~/place.aspx");
Run Code Online (Sandbox Code Playgroud)
此页面(place.aspx)始终显示正确的路径计数.
在调试模式的List页面上,我检查了查询字符串和位置,ZipCode就在那里.
那么,什么可能导致Page.RouteData不在一个页面中显示但在另一个页面中可用?
我是url路由的新手,但我想我遇到了类似的问题并找到了解决方案.你有没有尝试过:
routes.MapPageRoute("ListDetails/{Location}/{ZipCode}/", "ListDetails/{Location}/{ZipCode}/", "~/List.aspx");
Run Code Online (Sandbox Code Playgroud)
代替
routes.MapPageRoute("List/{Location}/{ZipCode}/", "List/{Location}/{ZipCode}/", "~/List.aspx");
Run Code Online (Sandbox Code Playgroud)
?
在我的情况下,我有:
routes.MapPageRoute(
"ImageDelete",
"Admin/Images/Delete/{nameToKill}",
"~/Admin/Images.aspx"
);
Run Code Online (Sandbox Code Playgroud)
它显示Page.RouteData.Values总是为空.
当我把它改成
routes.MapPageRoute(
"ImageDelete",
"Admin/Image/Delete/{nameToKill}", // mind the missing 's'
"~/Admin/Images.aspx"
);
Run Code Online (Sandbox Code Playgroud)
有效!
我认为路线可能不是以实际存在的网站的URL开头.
| 归档时间: |
|
| 查看次数: |
1448 次 |
| 最近记录: |