[英]Ajax passing data to ASP.NET controller
I'm attempting to run an ajax request on my ASP.NET web app where I pass a search term and receive some data back我正在尝试在我的 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>
And then here's the method in my OrganisationsController.cs class然后这是我的 OrganisationsController.cs class 中的方法
public class OrganisationsController : Controller
{
[HttpGet]
public async Task<IActionResult> Search([FromRoute] string search)
{
var items = await _organisationsService.SearchAsync(search);
return Ok(items);
}
}
However, when I try it the ajax call isn't even being made (It's generating a 404 error on the console log) and I can't work out how to pass the search parameter.但是,当我尝试它时,甚至没有进行 ajax 调用(它在控制台日志上生成 404 错误)并且我不知道如何传递搜索参数。 Does anyone have any suggestions?有没有人有什么建议?
Fix ajax url from organization to organizations and add "/" in the beginning:从组织到组织修复 ajax url 并在开头添加“/”:
url: "/Organisations/Search?search=" + search,
your action then那么你的行动
public async Task<IActionResult> Search([FromQuery] string search)
{
......
}
You can also try to use [FromUri] instead [FromQuery]您也可以尝试使用 [FromUri] 而不是 [FromQuery]
And by the way, if your version Mvc supports attribute routing, it maybe better to change action to this:顺便说一句,如果您的 Mvc 版本支持属性路由,最好将操作更改为:
[Route("~/Organizations/Search/{search}")]
public async Task<IActionResult> Search( string search)
{
....
}
in this case your ajax url:在这种情况下,您的 ajax url:
url: "/Organisations/Search/" + search,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.