1

我们正在开发基于 .NET webApi 的 Web 服务,允许客户创建和更新对象。当模型交给我们的控制器时,我们如何区分为 null/blank/0 的字段,因为调用者希望它们设置为 null/blank/0,或者为 null/blank/0 的字段,因为这是默认使用的当调用者不打算为该字段设置值时进行参数绑定?有处理这个的标准吗?

4

1 回答 1

1

您应该能够只检查控制器上的 ModelState 属性。如果调用了 WebAPI 操作并且 ModelState 有效,则应该意味着所有参数都从 URI 成功绑定或从请求正文中反序列化。

有一个警告 - 这仅适用于 WebAPI 的默认参数绑定。如果您注册自己的自定义参数绑定以不同方式绑定参数,那么所有赌注都将失败。

现在就参数的属性和字段而言,由格式化程序决定如何处理它们。反序列化程序在遇到丢失的成员时有两种选择。他们可以抛出,也可以用 0/blank/null 填充成员。您可以通过将属性标记为 [Required] 或使用 [DataMember(IsRequired=true)] 如果您正在使用数据协定模型来要求格式化程序在缺少属性时添加模型状态错误。

于 2013-01-10T22:27:47.947 回答