@H_502_12@解决方法
原文链接:https://www.f2er.com/aspnet/245117.html
您可以使用Route解决此问题.我做了一个简单的演示,你可以在几分钟内试用.在Global.asax.cs文件中,添加以下方法:
void RegisterRoutes(RouteCollection routes) { routes.MapPageRoute("Products","Products/{product}","~/getstring.aspx",false,new RouteValueDictionary { { "product","NoneSelected" } } ); }
在同一个文件中,在已经存在的void Application_Start(object sender,EventArgs e)方法中,添加RegisterRoutes(RouteTable.Routes);:
void Application_Start(object sender,EventArgs e) { RegisterRoutes(RouteTable.Routes); }
有了这个,你已经配置了一个Route,它将接受这样的请求:
http://foo.com/Products/bike%20stand
并将其映射到getstring.aspx.请注意,我有url编码url中的空格.
在getstring.aspx中,你可以像这样访问值(“自行车站”):
protected void Page_Load(object sender,EventArgs e) { string routeValue = ""; if (RouteData.Values.ContainsKey("product")) routeValue = RouteData.Values["product"].ToString(); //routeValue now contains "bike stand" SelectedProduct.Text = routeValue; }
我已在此示例中的应用程序文件夹下的“Products”路径中设置了Route.我不建议您直接在应用程序文件夹下设置路径,如问题所示.如果你绝对想要,你可以这样做:
void RegisterRoutes(RouteCollection routes) { routes.MapPageRoute("Products","{product}","NoneSelected" } } ); }