0
<HttpGet()>
Public Function Search(<FromUri()> ByVal name As Name) As HttpResponseMessage
  // get params from complex type
  // or check for model validation
  name.firstName;
  name.lastName;
End Function

Public Class Name
 <Required()>
 Public firstName As String
 <Required()>
 Public lastName As String
End Class

/api/abc/search?firstName=jack&lastName=daniels

我正在尝试将复杂类型作为查询参数发送,但即使我使用 fromUri 属性,名称也始终为空。我错过了什么?

编辑:我也使用 System.ComponentModel.DataAnnotations 的 Required() 属性。

4

1 回答 1

1

我发现了问题。我的字段中缺少属性关键字。

Public Class Name
 <Required()>
 Public firstName As String
 <Required()>
 Public lastName As String
End Class

因此,它适用于以下更改。

Public Class Name
 <Required()>
 Public Property firstName As String
 <Required()>
 Public Property lastName As String
End Class

问题解决了。我认为,没有属性,该类不会公开其字段,因此我无法从 uri 中读取它们。

于 2012-09-09T22:51:18.007 回答