簡體   English   中英

在C#中解析jQuery序列化數據

[英]Parse jQuery serialized data in C#

我的頁面上有一個ListBox。 我正在對C#函數進行AJAX調用,我需要傳遞所選項的值。 這就是我所擁有的:

$('#btnSubmit').click(function() {
    $.ajax({
        type: "POST",
        url: 'Default.aspx/GetSelectedValues',
        data: '{selectedValues: ' + $('#lbItems').serialize() + '}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess
    });
});

<select id="lbItems" multiple="multiple">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="4">Four</option>
    <option value="5">Five</option>
</select>


[System.Web.Services.WebMethod]
public static string GetSelectedValues(string selectedValues)
{
    //
}

傳遞給C#函數的數據如下所示:

lbItems=1&lbItems=3&lbItems=5

是否有任何內置的C#函數可以輕松地反序列化,將值轉換為某種數組? 或者也許有更好的方法從jQuery傳遞數據?

這種類型的格式實際上很容易用字符串類'Split函數進行解析。

只需使用帶有&符號的string.Split來獲取作為您個人參數的字符串數組。 然后在等號上切割每個字符串以獲得一個雙元素數組,其中元素0是var名稱,元素1是值。

代碼示例:

    string data = "lbItems=1&lbItems=3&lbItems=5";

    string[] items = data.Split(new char[]{'&'});

    foreach (string item in items)
    {
        string[] vals = item.Split(new char[]{'='});
        Console.WriteLine(vals[0] + ": " + vals[1]);
    }

如果您以JSON形式傳遞參數, .NET將自動為您反序列化JSON

暫無
暫無

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

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