Angularjs $http.post 但 asp.net 5 控制器为空

Angularjs $http.post but asp.net 5 controller gets null

在我的 angularjs 代码中我有这个:

$http.post("Home/PostData", {name:'Peter',age:18}).success(function (response) {

});

我的 asp.net 5 控制器中有这个方法:

[HttpPost]
public IActionResult PostData(string name,int age)
{

}

我在方法上设置了一个断点,它被触发了,但是我的名字是空的,年龄是 0。

我之前使用 asp.net mvc 5 做到了这一点并且成功了。

为什么asp.net5 错了?

使用,

$http.post("Home/PostData", { params: {name:'Peter',age:18}}).success(function (response) {

});

试试这个

 $http.post("Home/PostData",{ name: "Peter", age:18}).success(function (response){

    });

像下面这样更改您的控制器代码:

public class PostModel
{
    public string name { get; set; }
    public int age { get; set; }
}
[HttpPost]
public IActionResult PostData([FromBody]PostModel model)
{

}

在我的例子中,控制器参数名称与模型中的 属性 名称相同。由于这个原因它失败了。

对于 Ex-in 控制器 public JsonResult 方法(BindingModel firstname, ViewState viewState)

在绑定模型中--

class绑定模型{ 字符串 名字, 字符串姓氏 }