簡體   English   中英

大量傳遞數組值以使用c#進行代碼編寫

[英]passing array values in bulk to code behind using c#

我需要將值傳遞給從客戶端到服務器端的代碼后面,我該怎么做

發送的數據通常需要是一個鍵值對。 我認為僅發送字符串是行不通的。 數據變量通常需要是一個對象數組,每個對象都有兩個鍵: namevalue我通常有兩種方式

方法1:該方法將整個數組序列化為一個字符串(類似於您嘗試的字符串),並將其發送出去。 這樣做的一個很大的缺點是,如果數組太長,它將發送一個很長的字符串,該字符串可能會超過限制(然后需要從Web配置中增加限制)。 但是,這樣做的一大優點是您可以將對象直接序列化為ac#對象。

方法是將行data: JSON.stringify({ arr: values })更改為data: [{name:"values", value:JSON.stringify(values)}] ,然后在c#中訪問values字符串並反序列化它。 在C#中,您需要有類似以下的代碼:

JavaScriptSerializer js =新的JavaScriptSerializer(); MyObject對象= js.Deserialize(Request.Params('values'));

現在,您可以使用類型為MyObject的對象。 請注意,為了能夠使用它,您將需要c#對象和js對象具有完全相同的格式。 請注意,在這種情況下,MyObject將是某些東西的數組,因此需要將其替換為以下內容: object = js.Deserialize<string[]>(Request.Params('values'))

方法2:此方法可以將數組中的每個js項作為一個單獨的項發送出去。 在js代碼中,添加var i = 0; $ .ajax({行。然后將data: JSON.stringify({ arr: values })替換為data: values.map(v => ({name: i++, value: v}))

現在,在您的C#代碼中,您可以將數組的每個元素都訪問為Request.Params("0")Request.Params("1") ,依此類推...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM