2016-12-22 14 views
5

Web APIコントローラには、50個のフィールドをパラメータとして持つクラスを取るPOSTメソッドがあります。私はコントローラにnullというパラメータ値を取得していますが、フィールド数を30程度に減らすと正しい値が得られます。私は、これはのWeb.Configに追加した大規模なJSONリクエストの場合、Web API POSTパラメータはnullです

キー= "ASPNET:MaxJsonDeserializerMembers" を追加し、私はRequest.Content.ReadAsStreamAsync()を使用する場合は値= "140000"

を、そしてデシリアライズする JsonSerializerを使用しますストリーム、私は正しい値でオブジェクトを取得しています。

これは、POSTパラメータを読み取る好ましい方法ですか?

+0

30に減らしても問題ありませんか?今これらの30を取り出し、他の20と一緒に投稿し、何が起こるかを見てください。私は問題がそれらの1つであるかもしれないと思う20 – CodingYoshi

+0

しかし、それらの20はいくつかの基本的な小数フィールドです。しかし、私はまだ値を割り当てていませんでした。それがどのようにシリアライゼーションに影響するのかわからない? – user636525

答えて

-3

すべてのパラメータのプロパティを作成し、メソッドの後にクラスオブジェクトとして渡してください。 ex。 【httpPost] 公共ボイドpostmethod

public class clsProperty{ 
public param1 {get;set;} 
public param2 {get;set;} 
} 

([frombody] clsProperty)

6

はweb.configファイルにキロバイト

<httpRuntime maxRequestLength="50000"></httpRuntime> 

最大要求サイズのhttpRuntime値を設定します。デフォルトのサイズは4096 KB(4 MB)です。

関連する問題