【发布时间】:2021-11-21 02:52:23
【问题描述】:
我有一个输入框要搜索...
HTML:
<form id="searchForm" asp-controller="Product" asp-action="SearchProduct" method="get">
此输入以两种方式执行搜索:
1- 按下 Enter 键后 2-点击“a”标签后
JavaScript:
$('.txt-search-story').click(function () {
var span = $(this).find('span');
var txtspan = span.text();
$.ajax({
url: "/Product/GetTextSearch",
type: 'Get',
data: { "q": txtspan },
success: function (response) {
window.location.href = response.redirectToUrl;
}
});
});
控制器一:
[Route("/search/{**q}")]
public async Task<IActionResult> SearchProduct(string q, int page = 1)
{
if (q != null)
{
var searchProduct = await _product.SearchProduct(q, skip, countproduct);
ViewBag.searchtext = q;
return View(searchProduct);
}
}
Ajax 控制器二:
public IActionResult GetTextSearch(string q)
{
return Json(new { redirectToUrl = Url.Action("SearchProduct", "Product", new { q = q }) });
}
我希望第二个地址和第一个地址一样我该怎么办?
【问题讨论】:
-
从路由中删除 /{**q} 它将创建查询 ...?q=a ?
标签: javascript jquery ajax asp.net-core