随笔 - 59  文章 - 0  评论 - 340  阅读 - 34万 

使用过ASP.NET MVC的同学可能对Route已经有些接触,在ASP.NET WebForm中为实现类似的功能也许会使用URL Rewrite。本文将介绍在ASP.NET WebForm中使用Route。

 

1. 找到Global.asax文件,如果没有这个文件就新建一个。

2. 添加RegisterRoutes方法 

复制代码
代码
 1 public static void RegisterRoutes(RouteCollection routes)
 2 {
 3     // 默认页
 4     routes.MapPageRoute(
 5         "Defautl",
 6         "",
 7         "~/Folder1/WebForm1.aspx"
 8         );
 9 
10     // 对{folder}/{webform}形式的URL进行路由
11     routes.MapPageRoute(
12         "WebForm1",
13         "{folder}/{webform}",
14         "~/{folder}/{webform}.aspx"
15         );
16 
17     // 对{folder}/{page}形式的URL进行路由(带参数)
18     routes.MapPageRoute(
19         "WebForm2",
20         "{floder}/{webform}/{parameter}",
21         "~/{floder}/{webform}.aspx"
22     );
23 
24 }
复制代码

3. 在Application_Start方法中使用RegisterRoute方法。 

1 protected void Application_Start(object sender, EventArgs e)
2 {
3     RegisterRoutes(RouteTable.Routes);
4 }

如果要获取URL中的参数,可以参考下面的代码 

1 string parameter = Page.RouteData.Values["parameter"as string;

它将获取占位符为parameter的参数。如~/Folder2/WebForm3/abc可获取parameter参数的值是abc,但是如果遇到~/Folder2/WebForm3?parameter=abc似乎获取不到parameter的参数值。可以使用 

1 string parameter = Request.Params["parameter"as string;

来获取。

示例下载

 

本文适用于 ASP.NET 4

 

posted on   Magic.Z  阅读(4500)  评论(5编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2009-11-16 使用 Bing API 自定义 404 错误页
点击右上角即可分享
微信分享提示