我正在构建一个在ASP.NET Core中搜索文档的程序。我通过Ajax请求将搜索数据从文本框传递给控制器,但控制器没有收到字符串。我已经尝试改变ajaxData字段的定义方式,在'search'周围添加引号,甚至将整个事物转换为字符串,但我无法将其传递给控制器。这是请求的代码:ajaxData = {search: $("#textSearchBox").val()}console.log(ajaxData);$.ajax({
type: 'POST',
url: "@Url.Action("GetDocuments", "DocumentSearchApi")",
data: ajaxData,
dataType: "json",
contentType: "application/json; charset=utf-8",
error: function (e) {
//Error Function
},
success: function (jsonData) {
//Success Function
},
fail: function (data) {
//Fail Function
}});这是Controller的GetDocuments功能的顶部:[Route("GetDocuments")]public async Task<IActionResult> GetDocuments(string search){没有任何错误消息。控制台显示一个包含'search:“Test”'的Object,但是当我在GetDocuments中搜索断点时,'search'为null。
2 回答
UYOU
TA贡献1878条经验 获得超4个赞
我认为在这种情况下使用GET是更优雅的方式,那么你应该将代码更改为
var ajaxData = $("#textSearchBox").val();url: "@Url.Action("GetDocuments", "DocumentSearchApi")"?search=ajaxData
并删除数据:ajaxData
因为你想从搜索中获得一些东西。使用帖子是您想要修改API中的数据
繁华开满天机
TA贡献1816条经验 获得超4个赞
在将数据发送到Web服务器时,您需要使用JSON.stringify(),数据必须是字符串而不是对象
$.ajax({ type: 'POST', url: "@Url.Action("GetDocuments", "DocumentSearchApi")", data: JSON.stringify(ajaxData), dataType: "json", contentType: "application/json; charset=utf-8", error: function (e) { //Error Function }, success: function (jsonData) { //Success Function }, fail: function (data) { //Fail Function }});
添加回答
举报
0/150
提交
取消