在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" } }
    );
}

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。