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