Ajax请求:Json数据未传递给控制器

我正在构建一个在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。


莫回无
浏览 544回答 2
2回答

UYOU

我认为在这种情况下使用GET是更优雅的方式,那么你应该将代码更改为var&nbsp;ajaxData&nbsp;=&nbsp;$("#textSearchBox").val();url:&nbsp;"@Url.Action("GetDocuments",&nbsp;"DocumentSearchApi")"?search=ajaxData并删除数据:ajaxData因为你想从搜索中获得一些东西。使用帖子是您想要修改API中的数据

繁华开满天机

在将数据发送到Web服务器时,您需要使用JSON.stringify(),数据必须是字符串而不是对象$.ajax({ &nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;'POST', &nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;"@Url.Action("GetDocuments",&nbsp;"DocumentSearchApi")", &nbsp;&nbsp;&nbsp;&nbsp;data:&nbsp;JSON.stringify(ajaxData), &nbsp;&nbsp;&nbsp;&nbsp;dataType:&nbsp;"json", &nbsp;&nbsp;&nbsp;&nbsp;contentType:&nbsp;"application/json;&nbsp;charset=utf-8", &nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;function&nbsp;(e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Error&nbsp;Function &nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;function&nbsp;(jsonData)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Success&nbsp;Function &nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;fail:&nbsp;function&nbsp;(data)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Fail&nbsp;Function &nbsp;&nbsp;&nbsp;&nbsp;}});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript