2016-12-22 82 views
5

我在Web API控制器中使用POST方法,該方法以50個字段爲參數的類。我在控制器中獲取參數值null,但是如果將字段數減少到30個左右,我就可以獲得正確的值。對於大型JSON請求,Web API POST參數爲空

我有這個添加到Web.config中:

添加鍵= 「ASPNET:MaxJsonDeserializerMembers」 VALUE = 「140000」

如果我使用Request.Content.ReadAsStreamAsync(),並使用 的JsonSerializer反序列化流,我得到正確的值的對象。

這是讀取POST參數的首選方式嗎?

+0

你減少到30,它的作品?現在拿出這30個,並與其他20個發佈,看看會發生什麼。我認爲這個問題可能與這20箇中的1個 – CodingYoshi

+0

但這20個是一些基本的小數位字段。但我沒有給他們分配任何價值。不知道這是如何影響序列化? – user636525

回答

-3

請爲所有參數創建屬性並將其傳遞給post方法作爲類對象。 ex。

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

[httpPost] 公共無效的PostMethod([frombody] clsProperty)

6

web.config中

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

以千字節的最大請求大小設置的httpRuntime值。默認大小是4096 KB(4 MB)。