为什么来自Controller for Ajax请求的数据为空?

时间:2018-10-24 11:53:29

标签: ajax asp.net-mvc

我只想通过Ajax将一些Json数据传递给控制器​​。如下:

$.ajax({
    url: "/Ajax/MobileExistToAnotherGenerationUnit",
    contentType: 'application/json; charset=utf-8', 
    dataType: "json",
    cache: false,
    data: { mobile: mobile_no, generation_unit_id: generation_unit_id},
    success: function (response) {
        console.log(response);
    }
});

但是当我在控制器上调试时,数据为空。我在Controller上的方法是:

public IActionResult MobileExistToAnotherGenerationUnit(String data)
    {
        //ViewBag.Result =  _generationUnitMobileService.MobileExistToAnotherGenerationUnit(mobile,generationUnitId);
        return View();
    }

我检查了 字符串数据 ,但它为空。我的代码有什么问题?

2 个答案:

答案 0 :(得分:0)

如何添加JSON.stringify数据并键入POST。

var data = { mobile: mobile_no, generation_unit_id: generation_unit_id };
data = JSON.stringify(data);
$.ajax({
    url: "/Ajax/MobileExistToAnotherGenerationUnit",
    contentType: 'application/json; charset=utf-8', 
    dataType: "json",
    type : POST,
    cache: false,
    data: data,
    success: function (response) {
        console.log(response);
    }
});

答案 1 :(得分:0)

尝试在控制器中使用此方法:

public JsonResult AjaxTest(int id )
{   
    return Json("test", JsonRequestBehavior.AllowGet);
}

从JavaScript调用:

<script type="text/javascript">
    $(document).ready(function () {
        var serviceURL = '/YourControllerName/AjaxTest';

        $.ajax({               
            url: serviceURL,               
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: successFunc,
            error: errorFunc
        });

        function successFunc(data, status) {     
            alert(data);
        }

        function errorFunc() {
            alert('error');
        }
    });
</script>