使用angular的$ http向ASP.NET MVC中的HttpPost操作方法发送params

时间:2014-10-12 21:15:27

标签: asp.net-mvc angularjs

我的服务器端(ASP.NET MVC)有此操作:

    [HttpPost]
    public JsonNetResult MyAction(long param1, string param2, string stringifiedJson)
    {
       ...
    }

使用JQuery,我可以轻松地使用此操作,如下所示:

    $.ajax({
        async: true,
        type: 'POST',
        url: '/bla/myAction',
        data: {
            "param1": 123,
            "param2": "blah",
            "stringifiedJson": JSON.stringify(someJSON),
        },
        success: function (data) {
                ...
        }
    });

但是对于angularjs,我还没有能够做到这一点。这就是我正在尝试的:

    var httpRequest = $http({
        method: "post",
        url: "/bla/myAction",
        params: {
            param1: 123,
            param2: "blah",
            stringifiedJson: JSON.stringify(someJSON)
        },
        data: {
        }
    });

    httpRequest.success(function(response) {

        ...
    });

事实上,angularjs甚至不进行HTTP POST ..它正在执行OPTIONS请求,所以我找不到404。

问题是......如何使用参数进行发布请求?我知道我可以使用"数据"但是,如何让ASP.NET MVC将请求映射到每个方法参数?

1 个答案:

答案 0 :(得分:0)

您发送的数据应与asp.net mvc方法参数具有相同的名称。 f.e 如果你有方法

public ActionResult doSomethingMethod(string name, string surname)
{
 //code
}
来自angularjs的

 $http({
  url: "your url",
  method: "POST",
  data: {
      name: "Jon",
      surname: "Doe"
  }
 })

还有更快的方式

var dataToSend = {name:"Jon",surname:"Doe"};
$http.post("your url",dataToSend);