需要从http://localhost:53244/page.aspx?ID=7842到http://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
答案 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>