AngularJs发布到.NET控制器始终为null

时间:2017-11-18 01:07:08

标签: c# .net angularjs

我正在尝试将数据从Angular控制器发布到.NET端点。

角度函数如下所示:

vm.save = function () {
$http({
   url: 'Home/Save',
   method: 'POST',
   data: vm.colours,
   contentType: "application/json; charset=utf-8",
   header: {'Content-type': 'application/json'}
  })
  .success(function (response) {
                alert(response)
            }
        )

  };

终点看起来像这样:

[System.Web.Mvc.HttpPost]
public void Save([FromBody]Colours input)
{
     var temp = input;
}

发布到终点的数据是: Post header from Chrome

和颜色模型:

public class Colours
{
    public string color { get; set; }
    public string category { get; set; }
    public List<Code> codes { get; set; }
    public string type { get; set; }
}

public class Code
{
    public string rgba { get; set; }
    public string hex { get; set; }
}

如果我触发了保存功能,我点击结束点,我尝试将结束点更改为普通字符串/传递普通字符串并删除[FromBody],但传入的值始终为null。 / p>

我也尝试将角度更改为帖子的速记版本,但我不认为这是问题,如果我检查发布的http响应数据全部存在,那么断开连接必须在某处其他。

有很多问题围绕$ http.post提出一个null值,但是没有一个解决方案似乎解决了我的问题。

我错过了什么?我对角度来说比较新,所以它可能是显而易见的。

1 个答案:

答案 0 :(得分:0)

刚刚顿悟并解决了我的问题,问题是被发送的对象是一个颜色数组而不是一个颜色。将结束点更改为如下所示,这解决了问题:

[System.Web.Mvc.HttpPost]
public void Save(List<Colours> input)
{
    var temp = input;
}