我是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 } );
}
看起来数据已经正确发送。
如果我已正确理解它,字符串现在应该具有传递数据的值。但它仍然是空的。
我还尝试将void作为返回值(并且没有dataType)。
<input type="button" value="Fatty2" onclick="ajaxMethodData()" />
我做错了什么?
答案 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
最后一个例子正好是你的情况