在ajax请求之后,JQuery,Ajax和MVC6参数为null

时间:2017-01-18 13:32:23

标签: javascript jquery ajax asp.net-core-mvc

我是asp.net核心,c#和MVC 6的新手。我正在尝试通过ajax将数据发送到我的控制器。

function ajaxMethodData() {

$.ajax({
    url: "AjaxWithData", // hard coded for testing
    type: "POST",
    data: JSON.stringify({ username: "NeXT405" }),
    contentType: "application/json; charset=utf-8",
    dataType: "json",

    success: function () {
    },
    error: function () {
        alert('error');
    }
});

}

控制器中的方法如下所示。该方法由ajax请求调用。

[HttpPost]
    public IActionResult AjaxWithData([FromBody] string username )
    {
        Debug.WriteLine(username);

        return Json(new { success = true } );
    }

enter image description here

看起来数据已经正确发送。

如果我已正确理解它,字符串现在应该具有传递数据的值。但它仍然是空的。

我还尝试将void作为返回值(并且没有dataType)。

<input type="button" value="Fatty2" onclick="ajaxMethodData()" />

我做错了什么?

1 个答案:

答案 0 :(得分:0)

只需更改

data: JSON.stringify({ username: "NeXT405" }),

data: JSON.stringify("NeXT405"),

WebApi只允许从body获取1个参数,因此基本类型不需要变量名。

只需检查:https://www.asp.net/web-api/overview/advanced/sending-html-form-data-part-1

最后一个例子正好是你的情况