我正在开发.net核心应用程序。我需要使用Post方法将java脚本值传递给我的控制器。我在下面使用java脚本代码
Managed
我的控制器是
data = {'imageValue':'some test'}
$.ajax({
type: 'Post',
url: '/Home/UploadData',
dataType: 'json',
contentType: 'application/json',
data: data,
success: function (data) {
alert(data);
console.log('sample');
},
error: function(){
}
});
但imageValue总是返回null。如果我的代码中有任何错误请解决问题。
答案 0 :(得分:4)
当你进行ajax调用时,你应该对javascript对象进行字符串化并发送它。您可以使用JSON.stringify
方法将js对象转换为它的等效JSON字符串。
var data = {'imageValue':'some test'}
$.ajax({
type: 'Post',
url: '/Home/UploadData',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(data),
success: function (data) {
console.log('sample', data);
},
error: function(){
}
});
现在由于ajax调用正在请求体中发送数据(因为它是一个POST请求),你需要用[FromBody]属性修饰HttpPost动作方法参数,以便模型绑定器知道它应该从中读取数据请求体并映射到方法参数( YourViewModel )对象。
public IActionResult UploadData([FromBody] YourViewModel d)
{
return Json(d);
}