#asp.net-core #bootstrap-4
Вопрос:
Я пытаюсь изучить .net core, и то, что я хочу сделать, это: у меня есть панель поиска и функция GetDetail в контроллере. Я хочу активировать эту функцию при нажатии кнопки поиска в соответствии с текстом в форме. Но когда я нажимаю кнопку, ничего не происходит. Я не выполнил часть триггера, но даже если я просто перенаправлю на другую страницу с помощью href, также ничего не произойдет. Вот мой код просмотра строки поиска, который взят из sbadmin2:
<div class="row justify-content-center">
<div class="col-6 p-3">
<div class="input-group">
<input type="text" class="form-control bg-light border-0 small" placeholder="Input" aria-label="Search" aria-describedby="basic-addon2" id="code">
<button class="btn btn-primary" type="button" action="/Books/GetDetail?">
<i class="fas fa-search fa-sm"></i>
</button>
</div>
</div>
</div>
и функция, которую я хочу запустить, — это запрос get:
public IActionResult GetDetail(string codes)
{
var request = $"?codes={codes}";
var products = _httpTool.HttpGetAsync<List<Products>>($"{AppSettings.ApiUrl}/GetProducts{request}");
var productList = products.Result.ToList();
return Json(productList);
}
Почему ничего не происходит и как я могу этого достичь?
Заранее спасибо!
Ответ №1:
попробуйте что-нибудь подобное:-
<form method="post" asp-action="GetDetail">
//clarify code
<input type="submit" value="Search" class="btn btn-outline-primary mt-1"/>
//clarify code
</form>
[HttpPost]
public IActionResult GetDetail(string codes)
{
var request = $"?codes={codes}";
var products = _httpTool.HttpGetAsync<List<Products>>($"{AppSettings.ApiUrl}/GetProducts{request}");
var productList = products.Result.ToList();
return Json(productList);
}
После нажатия Search
вы увидите, что что-то произойдет.
Комментарии:
1. Да, я заставил отладчика, наконец, посетить GetDetail, и этого для меня достаточно. Спасибо.