1

Request.Formコレクションからフィールドを削除するにはどうすればよいですか

 Request.Form.Remove("myfield");

エラーが発生します:コレクションは読み取り専用です。

編集:フォームを外部APIに送信していますが、フィールドを必要とせず、エラーが発生します。そのフィールドは、内部アプリケーションで必要です。使用するフォームを送信するには

XXX_API.Post(Request.Form, ID); 
4

1 に答える 1

2

HttpRequest.Formは単なるNameValueCollectionです。APIに提供する必要のあるフォームのデータに基づいて、APIに投稿できないフィールドを除外して、別のNameValueCollectionを自由に作成できます。次に、新しいNameValueCollectionをAPIに送信できます。

キーを選択して選択する場合は、次を使用できます。

NameValueCollection formToPost = new NameValueCollection();

formToPost.Add("SomeKey", Request.Form["SomeKey"]);
formToPost.Add("AnotherKey", Request.Form["AnotherKey"]);

XXX_API.Post(formToPost, ID);

または、1つのキー以外のすべてが必要な場合は、次の方法を使用できます。これはもう少し簡単です。オーバーロードされたコンストラクターRemoveメソッドを利用します。

NameValueCollection formToPost = new NameValueCollection(Request.Form);    
formToPost.Remove("FieldToRemove");

XXX_API.Post(formToPost, ID);
于 2012-09-26T15:26:07.733 に答える