Так как это запрос GET, вы также можете использовать javascript, установив
location.href = 'http://mysite.com/search/' + query;
Затем на стороне ASP.NET вы можете использовать функцию перезаписи URL , чтобы перенаправить этот URL-адрес на определенную страницу ASPX в качестве параметра строки запроса.
Дайте мне знать, если вы хотите более подробный образец.
Пример:
Вот пример, обратите внимание, я не проверял его, но это должно помочь вам начать.
<html>
<head>
<script type="text/javascript">
function searchRedirect()
{
var query = $get('query');
location.href = "/search/" + query.value;
}
</script>
</head>
<body>
<div class="search">
<input type="text" id="query" /><br />
<input type="button" id="search" value="Search" onclick="searchRedirect();" />
</div>
</body>
</html>
Тогда на стороне перенаправления у вас есть RouteModule, подобный этому:
public class UrlRewriter : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.AuthorizeRequest += new EventHandler(OnBeginRequest); //this ensures the login page has the vitual url not the mapped url
}
private void OnBeginRequest(object sender, EventArgs e)
{
var application = sender as HttpApplication;
if (application != null)
{
var requestPath = application.Request.AppRelativeCurrentExecutionFilePath;
if (requestPath.ToLower().StartsWith("/search/"))
{
var query = requestPath.Substring(8);
application.Context.RewritePath("Search.aspx", null, "query=" + query, false);
}
// .. Other Routes
}
}
}
И, предполагая, что код находится в вашей папке App_Code, вы можете использовать это в своем файле web.config
<system.web>
<!-- ... -->
<httpModules>
<add name="UrlRewriter" type="UrlRewriter, __code"/>
</httpModules>
</system.web>
<!-- If IIS7 -->
<system.webServer>
<modules>
<add name="UrlRewriter" type="UrlRewriter, __code" />
</modules>
</system.webServer>