【发布时间】:2021-03-19 17:03:27
【问题描述】:
我正在尝试在我的 ASP.NET Web 应用程序上运行一个 ajax 请求,我在其中传递了一个搜索词并接收了一些数据
<div class="form-group">
<input type="text" id="orgSearch" placeholder="Search organisation by name..." class="form-control" name="search" autocomplete="off" data-controller="@Model.ControllerName" data-target-property="@Model.LookaheadProperty">
</div>
<script>
$(document).ready(function () {
var form = document.getElementById("orgSearch");
form.addEventListener("keyup", function (event) {
event.preventDefault();
var search = document.getElementById("orgSearch").value;
$.ajax({
type: "GET",
url: "Organisation/Search?search=" + search,
success: function (object) {
console.log(object);
}
});
});
});
</script>
然后这是我的 OrganisationsController.cs 类中的方法
public class OrganisationsController : Controller
{
[HttpGet]
public async Task<IActionResult> Search([FromRoute] string search)
{
var items = await _organisationsService.SearchAsync(search);
return Ok(items);
}
}
但是,当我尝试它时,甚至没有进行 ajax 调用(它在控制台日志上生成 404 错误)并且我不知道如何传递搜索参数。有人有什么建议吗?
【问题讨论】:
-
你的参数不是来自路由,是来自查询
-
“路由”参数将是 URL 路径的一部分,而不是查询字符串。
-
您的控制器名为
OrganisationsController,但您选择的路线是Organisation`。注意一个是复数,另一个不是?
标签: javascript c# asp.net