2014-09-26 47 views
0

我正在使用Web API來提供報告結果的概念驗證。唯一的問題是這些報告的性質涉及很長的輸入參數列表。例如,一個報告請求員工信息並接受電子郵件作爲標識符。如果某人從Excel中獲得了2000名員工的名單,這可能會成爲一個巨大的輸入參數。將長輸入參數列表傳遞給web api

理想情況下,我想讓用戶只需將列表粘貼到文本框中,單擊按鈕,然後讓我的代碼解析列表並一次性生成結果。我可以重新組織東西,而是強制用戶輸入他們的輸入列表(將參數保存到數據庫表),然後運行報告。

有沒有辦法解決這個問題,或者我應該重新考慮在這種「一氣呵成」的方式下使用Web API調用嗎?

回答

0

查詢字符串的最大大小爲2048個字符。使用下面列出的設置可以很容易地在web.config文件中更改此項。

但是,我被告知,查詢字符串長度也是特定於瀏覽器。所以我不確定你的默認字符長度是否足夠。

另一種解決方案是 -

如果你有一個非常大的查詢字符串,那麼你可以提交你的Get請求POST和你可以傳遞一個類的數組。您也可以傳遞一個數組

[HttpPost] 
[Route("/reports/employeereport")] 
public void Employee(CustomObject[] pos) 
{ 
} 

,你可以調用此方法爲:

$.ajax({ 
    url: "/reports/employeereport", 
    data: JSON.stringify({ pos: objectData }) , 
    dataType: 'json', 
    contentType: 'application/json' 
    type: 'POST', 
});