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

クエリパラメータとしてcomlexタイプを送信しようとしていますが、fromUri属性を使用していても、名前は常にnullです。私は何が欠けていますか?

編集: System.ComponentModel.DataAnnotationsのRequired()属性も使用しています。

4

1 に答える 1

1

問題を見つけました。フィールドにPropertyキーワードがありませんでした。

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 に答える