将搜索参数添加到url以启用从地址栏直接搜索

时间:2016-01-27 20:09:43

标签: c# asp.net

我有几个旧网站,我想添加路由参数。它们是在没有使用mvc的情况下编码的,所以没有带有方便的MVC设置的global.asax。

目前我的网页上有一个带有搜索功能的网址abc.com/xyz。我可以输入一个查询,它会将我发送到另一个页面但它具有相同的URL。我想这样做,如果我把一些变体的网址abc.com/xyz?search='what_You_Query',它给了我搜索页面。现在,url将我发送到我输入查询的页面。

该网站使用C#和html编码,并保存在aspx文件中。网页还使用了jscripts

我很感激我能得到任何帮助

编辑:似乎有些混乱,有一个搜索框允许用户在网页上查询。我想要的是允许用户直接链接到搜索过的页面。

1 个答案:

答案 0 :(得分:0)

您需要在页面加载时捕获它 - 检查查询字符串(https://msdn.microsoft.com/en-us/library/ms524784%28v=vs.90%29.aspx),如果搜索在其中,则重定向到搜索页面。

修改为包含更多详细信息

我假设您正在使用Web表单(Microsoft替代MVC)。您需要添加服务器端(http://www.seguetech.com/blog/2013/05/01/client-side-server-side-code-difference)Page_Load事件(https://msdn.microsoft.com/en-us/library/6w2tb12s.aspx)。代码看起来像这样:

protected void Page_Load(object sender, EventArgs e)
{
    if(Request.QueryString["search"] != null)
        Response.Redirect("/search?" + UrlEncode(Request.QueryString["search"]), true);
}

请注意我没有测试过这段代码,而且我在这里有点记忆 - 但这应该可以解决问题。