Вы можете использовать URL Redirect для реализации этого. Попробуйте обратиться к моей демонстрации ниже:
1. Создайте RewriteRules
класс
public class RewriteRules
{
public static void RedirectRequests(RewriteContext context)
{
var request = context.HttpContext.Request;
if (request.Query["SearchString"].ToString() != "")
{
var xx = $"{context.HttpContext.Request.Path.Value}/{request.Query["SearchString"].ToString()}";
context.HttpContext.Response.Redirect ($"{context.HttpContext.Request.Path.Value}/{request.Query["SearchString"].ToString()}");
}
}
}
2. Настройте его как промежуточное ПО вstartup.cs
app.UseRewriter(new RewriteOptions()
.Add(RewriteRules.RedirectRequests)
);
3.Мой вид:
<form asp-controller="Home" asp-action="TestUrl" method="get">
<p>
Title: <input type="text" name="SearchString">
<input type="submit" value="Filter" />
</p>
</form>
4.Мое действие:
[HttpGet("Home/TestUrl/{searchString?}")]
public async Task<IActionResult> TestUrl(string searchString)
{
return Json(searchString);
}
При отправке /Home/TestUrl?searchString=hello
он будет перенаправленна /Home/TestUrl/hello
и верните «привет».