对Web API执行POST时,AngularJS空作用域值导致空对象

时间:2017-01-06 19:07:14

标签: asp.net angularjs json vb.net asp.net-web-api2

我使用AngularJS将自定义.NET对象发布到Web API函数。我的特殊问题似乎是这个自定义对象的属性是' null'或空白。

示例对象:

Public Class test
    public property EstimateValue as int32
End Class

在我的示例aspx页面上,我打算进行一次测试'对象使用Web API上的GET调用,并将其存储在$ scope变量中,默认情况下,EstimateValue属性为零,我希望这是框架默认值。

问题是当我从绑定到该scope属性的文本框中删除值时,Angular发送的json变为:

{"EstimateValue":""}

我在网络API上的POST功能:

<HttpPost>
    Public Function UpdateTest(testObj As test) As IHttpActionResult

&#39; testObj&#39;对象总是“没有”&#39; (vb.net)或者对你来说是空的。然而,对json进行简单的更改: "EstimateValue":0,一切正常。

我也试过"EstimateValue":null也失败了

为了说明的目的,我已经简化了这个场景,我使用了更为复杂的对象和功能,但它可以解决这个问题。

我已经到处搜索过,并且找不到任何与null / blank / empty范围属性相关的内容,导致POST请求中出现空白复杂对象。

有人知道为什么当json是空字符串时无法正确解析自定义对象?如果没有值存在,我会假设它应该将一个整数转换为零,我已经尝试<FromBody>而没有运气。

同样的事情发生在日期值上,您可能会说在发布之前只插入默认值,但这对于跨多个API函数的大型自定义对象来说是一项巨大的努力,必须有一些方法来全局处理当用户提交空字段时,必须为默认值自定义代码。我是Angular的新手,所以我希望有一个简单的解决方法。

0 个答案:

没有答案