我正在尝试使用 Web 窗体在 ASP.Net 中开发我的第一个站点。
我有一个带有一些控件和一个 TextBox 控件的表单。而现在我使用GET
请求。当用户提交表单时,他的浏览器期望获得长 URL,例如
http://mysite.com/search.aspx?__VIEWSTATE=%2FwEPDwUJNTE2NjY5jMY4D2QWAgICD2QWAgIDDW8wAh4EVGV4dAUBMWRkZKthQ0zeIP5by49qIHwSuW6nOj8iLTdoCUzpH369xyg8&__EVENTVALIDATION=%2FwEWAwLnrcHhBQLs0bLrBgKM54rGBjGtX5fJOylLy4qRbt6DqPxO%2FnfcMOkHJBRFqZTZdsBD&TextBox1=sfs&Button1=Button
如果他的输入sfs
是TextBox1
. 所以我需要回复他。我想在用户友好的 URL 上显示此响应,例如
http://mysite.com/search.aspx?TextBox1=sfs
或者
http://mysite.com/sfs
或者
http://mysite.com/search/sfs
我怎样才能做到这一点?如果我使用 Response.Redirect,它首先返回 302,然后才可以处理短 URL。Server.Transfer 不会更改 URL,用户会在浏览器中看到难看的长 URL。
在我看来,可以通过RouteCollection.MapPageRoute
4.0 框架中出现的方法来解决,但我不清楚如何使用它。
任何帮助表示赞赏。
更新。使用POST
代替 不是问题GET
。但是这样 URL 总是看起来像http://mysite.com/search.aspx
更新2。表单必须是服务器控件,并且除了提交和文本框之外,它还有其他控件。这会很好(不过,如果此参数没有出现在浏览器中显示的 URL 中,则仍然没有必要。