我使用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的新手,所以我希望有一个简单的解决方法。