如何使用.net核心应用程序中的post方法将java脚本值传递给控制器​​?

时间:2017-06-21 14:12:01

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

我正在开发.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。如果我的代码中有任何错误请解决问题。

1 个答案:

答案 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);
}