2017-10-03 19 views
0

ASP.NET WebフォームアプリケーションのフォームをWeb APIに投稿する必要があります。私が使用しようとしているメソッドは、System.Net.WebClient.UploadValues(String, NameValueCollection)POST asp.net WebフォームからWeb API

です。投稿されたフォームフィールド名がモデルプロパティと一致する場合のみ、Web APIはモデルバインドを行います。

しかし、レンダリングされたフォームは、だから、基本的には次が動作しないctl00$ctl00$mainContent$mainContent$DateOfBirthまたはctl00$ctl00$mainContent$mainContent$MA_Address_State

のようなフィールド名を持っています

byte[] responseArray = webClient.UploadValues(action, "POST", Request.Form); 

私はクライアント側ですべてのフォームコントロールを通過し、それらを変換することができると思います私の選択のNameValueCollectionに、しかし良い方法がありますか?

答えて

0

ClientIDプロパティを変更することができます。デフォルトのAutoID値を使用していて、静的に変更します。あなたのWebフォームプロジェクトのweb.configファイルに以下を追加します。

<pages clientIDMode="Static" /> 

Control.ClientIDMode Property

+0

これはidと名前が異なる属性になります。 idは私たちが望むものになり、名前は$記号で長い階層構造にとどまっています。 POSTはname属性を使用します。つまり、モデルを受け取ることによってモデルは依然として拘束されません。 – joym8

関連する問題