我正在使用asp.net 4.0 webform项目和路由。我需要知道处理请求的实际页面。假设我的路由网址类似于
http://mysite.com/product/audi 基本上我有product.aspx页面和audi作为查询字符串值传递。实际上,product.aspx正在处理请求。我可以编程提取页面名称和查询字符串名称和数据。因此,我可以像以后一样建立网址
http://mysite.com/product.aspx?cat=audi
请帮我构建来自路由网址的查询字符串的网址。 感谢
已添加部分
当我们在global.asax中映射路由时如
`protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("","Product/{category}","~/Product.aspx");
}
然后我们获得类似http://www.mysite.com/products/software的路径路径,但内部网址看起来像http://www.mysite.com/products.aspx?category=software。所以我只需要反向。我会将http://www.mysite.com/products/software之类的网址传递给任何例程,例程会像http://www.mysite.com/products.aspx?category=software一样将网址返回给我。告诉我怎么能这样做。
答案 0 :(得分:0)
来自ScottGu的博客:
检索ASP.NET Web表单中的URL
ASP.NET中的URL路由引擎既可用于将传入URL映射到代码处理程序,也可用于使用相同的映射注册逻辑以编程方式生成传出URL。
例如,上面我们映射了/ products / {category}网址时,我们给它一个“产品浏览”的“友好名称”。这使我们现在还可以使用新的Page.GetRouteUrl()辅助方法来查找URL路由系统中的路由,可选地为其指定参数,然后检索它映射回的实际URL。例如,以下代码将检索URL值“/ products / software”:
URL Routing with ASP.NET 4 Web Forms (VS 2010 and .NET 4.0 Series)