質問: HTTPリクエストからフォームエンコードされた入力を介して割り当てられるプロパティの名前は、そのプロパティがフォームにエンコードされた入力からクラスの新しいインスタンスを作成すると、その名前にピリオドを持ついくつかのキーが含まれます。VB Web API - フォームのプロパティ名エンコードされた値のピリオド付き名前
私は、ASP.NET self-hosed Web APIを使用するVB.NETアプリケーションを持っています。
このメソッドの1つは、アプリケーションBomgarからの入力を受け入れます。私は「REQUEST_ID」、「response_url」、および「TICKET_ID」部分を処理することができるよ
jump_item.comments=
&jump_item.computer_name=
&jump_item.group=
&jump_item.private_ip=
&jump_item.public_ip=
&jump_item.tag=
&jump_item.type=
&request_id=
&response_url=
&ticket_id=
&user.email_address=
&user.id=
&user.private_display_name=
&user.public_display_name=
&user.username=
、:
に送られたのデータは、フォームエンコード形式であり、次のようになります。同じ名前のプロパティを持つオブジェクトを確立します。
私はこのフォーム入力を受け入れ、このデータを含むhttpメッセージの本文をオブジェクトに送ると、フォーム入力をそれらの名前を含むプロパティに自動的にマップすることを読んだので、これを実行しました。
だから私は以下のように定義チケットという名前のクラス、持っている:
Public Class Ticket
Public Property response_url As String
Public Property request_id As String
Public Property ticket_id As String
End Class
をそして、私は私のコントローラ内で次を経由して、このクラスのインスタンスにフォームデータの内容をマップ:
Public Sub PostProduct(<FromBody()> NewTicketRequest As Ticket)
...
End Sub
これは、そのオブジェクトのrequest_id、response_url、ticket_idの各プロパティを正しく割り当てます。
しかし、私はまた、送信されているjump_item入力をキャプチャしたいと思います。ユーザは入力しますが、プロパティ名にピリオドを含めることはできません。
上記のHTTPフォームエンコードされたデータをそのオブジェクトの新しいインスタンスに渡すと、自動的に埋められるプロパティをTicketクラスに含めることはできますか?名前を付ける方法や、別のオブジェクトを設定する必要があるかどうかはわかりません。
私はと同様の方法で、ユーザーの電子メールアドレスに対処できるようにしたいと思います:
NewTicketRequest.user.email_address
または
NewTicketRequest.user_email_address
入ってくるアイテムは、後の期間を持つことになりますにもかかわらず、単語ユーザー。
これは素晴らしい応答でした。私は物事の全体的なモデル/コントローラ/ビューの側面で経験はありません。私は現在、ASP.NET Web APIを使用するデスクトップアプリケーションを持っています。ビューは必要ですか? – schizoid04
これはすごくうまくいった!あなたには感謝してもしきれません。 – schizoid04
あなたは大歓迎です:) –