C# 在ASP.NET中处理传入请求URL
当前正在尝试增强对现有ASP.NET站点的搜索。我的背景是Java,因此,如果我用Java编写服务器,我可以将传入的请求作为字符串处理,然后根据需要解析它,去掉搜索词,等等 ASP的哪个部分可以处理这个问题?我应该在哪里查找传入字符串的分离位置以处理搜索请求?有一个搜索按钮,可将页面重定向到包含搜索参数的URL。这就是线索对我来说变冷的地方,因为我需要知道它从哪里回到服务器 例如,一旦您审查了搜索词,它就会像这样提交:C# 在ASP.NET中处理传入请求URL,c#,asp.net,url-parsing,C#,Asp.net,Url Parsing,当前正在尝试增强对现有ASP.NET站点的搜索。我的背景是Java,因此,如果我用Java编写服务器,我可以将传入的请求作为字符串处理,然后根据需要解析它,去掉搜索词,等等 ASP的哪个部分可以处理这个问题?我应该在哪里查找传入字符串的分离位置以处理搜索请求?有一个搜索按钮,可将页面重定向到包含搜索参数的URL。这就是线索对我来说变冷的地方,因为我需要知道它从哪里回到服务器 例如,一旦您审查了搜索词,它就会像这样提交: Response.Redirect("~/shop?" + type + "
Response.Redirect("~/shop?" + type + "=" + searchBoxContent);
/shop.aspx?type=abc
“类型”是搜索的类型,因此可以基于品牌或产品描述内的搜索等
该站点已经在使用某种类型的url重写,因为当您进行搜索时,url没有显示任何.aspx。我应该查看配置文件还是.master.cs文件,或者将我指向正确的方向?最简单的系统是ASP.NET MVC,它具有内置的路由和参数处理程序 有关文档,请参阅 例如:
{controller}/{action}/{id}
可以重定向到控制器操作:
public ActionResult Find(int id)
{ ... }
如果这不是您想要的,请查看Scott Guthrie关于URL重写的介绍。如果您有这样的URL:
Response.Redirect("~/shop?" + type + "=" + searchBoxContent);
/shop.aspx?type=abc
然后,您可以使用“获取类型的值”
。以下是语法:
Request.QueryString["type"]
例如,如果您想在第一次加载/shop.aspx?type=abc
时获取值,那么您应该在Page\u Load
方法中将此代码添加到代码隐藏(shop.aspx.cs
)中:
你说的是ASP.NET Webforms还是ASP.NET MVC?@ekad是Webforms。不幸的是,这是一个现有的项目,因此我没有选择MVC。您是否尝试过为此使用HttpModule?这会迫使OP使用shop.aspx,正如您所说的,但是+1。我意识到现在我可能问了一个不可能的问题,因为似乎没有像在其他框架中那样,ASP处理请求URL的关键“岔路口”。@ekad感谢您的输入,但我必须处理一个现有的应用程序,所以我没有按照您的建议去做的自由。我只需要跟踪现有的代码并修改它。这就是我现在的问题所在,我找不到已经处理的部分。@GenericJam您可以尝试检查web.config并查看是否有任何重写规则,或者在
Application\u BeginRequest
方法中检查global.asax,可能url重写在其中任何一个中。+1用于博客文章。答案可能在某个地方,但我可能只需要问问最初编写它的人,他把处理搜索的代码放在哪里,因为它可以在多个位置访问。我同意MVC可能是更好的选择,但我现在被这辆马车束缚住了。