在asp.net中读取查询字符串而不指定任何页面名称

前端之家收集整理的这篇文章主要介绍了在asp.net中读取查询字符串而不指定任何页面名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何读取aspx页面中的任何字符串.

例如:http://foo.com/bike

我想在指定的aspx页面中读取/获取字符串.
预期的页面字符串是自行车架
预期的页面是getstring.aspx

在这里,我想读取字符串并重定向到指定的页面.
注意:我喜欢在ASP.Net(不使用MVC)中执行此操作

解决方法

您可以使用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" } }
    );
}

猜你在找的asp.Net相关文章