如何将路由http:// localhost:53244 / page.aspx?ID = 7842映射到http:// localhost:53244 / Home

时间:2019-04-03 09:02:53

标签: c# asp.net .net routing

需要从http://localhost:53244/page.aspx?ID=7842http://localhost:53244/Home的映射路由,并且需要在新的映射URL中传递默认查询字符串

我已经尝试过System.Web.Routing.RouteTable.Routes.MapPageRoute("Home", "Home", "~/Page.aspx", false, new RouteValueDictionary { { "ID", "7844" } }); 但它对我不起作用,因为我需要request.querystring中的ID而不是Page.RouteData.Values["ID"]

这是我的基本代码System.Web.Routing.RouteTable.Routes.MapPageRoute("Home", "Home/{*queryvalues}", "~/Page.aspx", false); 我可以在其中使用http://localhost:53244/Home?ID=7842之类的网址,但我只需要http://localhost:53244/Home

1 个答案:

答案 0 :(得分:1)

使用Web.Config可以使用URL映射

 <system.web> 
    <urlMappings enabled="true">
      <add
          url="~/page.aspx?ID=.."
          mappedUrl="~/Home" />  
  </system.web>

有关更多信息,请检查this

要处理page.aspx返回的所有页面,可以使用URL重写规则

<rewriteModule>
  <rewriteOn>true</rewriteOn>
  <rewriteRules>
      <rule source="(.*)/Home"  
         destination="page.aspx?ID=$1"/> 
  </rewriteRules>
</rewriteModule>