Да, что-то вроде этого сделает работу за вас, в вашем событии загрузки страницы, например:
// Check to see if the user submitted the form:
if (Page.IsPostBack){
// Get the Params collection - query and forms
NameValueCollection params = Request.Params;
StringBuilder query = new StringBuilder();
// Iterate over the params collection to build a complete
// query string - you can skip this and just build it
// manually if you don't have many elements to worry about
for(int i = 0; i <= params.Count - 1; i++)
{
// If we're not on the first parameter, add an & seperator
if (i > 0){
query.Append("&");
}
// Start the query string
query.AppendFormat("{0}=", params.GetKey(i));
// Create a string array that contains
// the values associated with each key,
// join them together with commas.
query.Append(String.Join(",", pColl.GetValues(i));
}
Response.Redirect(String.Format("{0}?{1}",
Request.Url.AbsolutePath, query.ToString()))
}
Другая проблема, связанная с этим шаблоном, заключается в том, что в результате вы получите дополнительное перенаправление в истории, которое может заставить пользователей дважды щелкнуть назад, чтобы вернуться к форме поиска.
С другой стороны, теперь они могут с радостью добавить в закладки страницу результатов и вернуться к своим результатам без повторной отправки формы.