C#(.NET)处理Javascript数组/序列化

C#(.NET)处理Javascript数组/序列化,c#,javascript,jquery,asp.net-mvc,C#,Javascript,Jquery,Asp.net Mvc,我使用tableDnD对表行重新排序,然后使用“$.tableDnD.serialize()”对它们进行序列化 我想把这个发送给C#处理,这样做有什么好处 下面是序列化的一个示例 pages[]=&pages[]=21&pages[]=23&pages[]=34&pages[]=37&pages[]=40&pages[]=43&pages[]=46&pages[]=49&pages[]=31&pages[]=50&a

我使用tableDnD对表行重新排序,然后使用“$.tableDnD.serialize()”对它们进行序列化

我想把这个发送给C#处理,这样做有什么好处

下面是序列化的一个示例

pages[]=&pages[]=21&pages[]=23&pages[]=34&pages[]=37&pages[]=40&pages[]=43&pages[]=46&pages[]=49&pages[]=31&pages[]=50&pages[]=51&pages[]=52&pages[]=53&pages[]=54&pages[]=55&pages[]=56&pages[]=57&pages[]=58&pages[]=61&pages[]=65&pages[]=70&pages[]=74&pages[]=77&pages[]=78&pages[]=79&pages[]=82&pages[]=85&pages[]=88&pages[]=91&pages[]=94&pages[]=97&pages[]=100&pages[]=103&pages[]=106&pages[]=109&pages[]=112&pages[]=115&pages[]=119&pages[]=122&pages[]=123
重要信息
我将其标记为MVC,但忘了提及。我使用的是ASP.NET MVC

您可以使用jQuery的一种ajax方法发送它。在将其发送到服务器之前,我希望将其转换为更小、更整洁的CSV字符串,如下所示:

var str = 'pages[]=&pages[]=21&pages[]=23&pages[]=34&pages[]=37&pages[]=40&pages[]=43&pages[]=46&pages[]=49&pages[]=31&pages[]=50&pages[]=51&pages[]=52&pages[]=53&pages[]=54&pages[]=55&pages[]=56&pages[]=57&pages[]=58&pages[]=61&pages[]=65&pages[]=70&pages[]=74&pages[]=77&pages[]=78&pages[]=79&pages[]=82&pages[]=85&pages[]=88&pages[]=91&pages[]=94&pages[]=97&pages[]=100&pages[]=103&pages[]=106&pages[]=109&pages[]=112&pages[]=115&pages[]=119&pages[]=122&pages[]=123';

var tmpArr = str.split('&');
var pagesArr = [];
for(var i = 0;i < tmpArr.length; i++) {
    var paramArr = tmpArr[i].split('=');
    if(paramArr[1] != null && paramArr[1] != '') {
        pagesArr.push(paramArr[1]);
    }
}
alert(pagesArr); //now much prettier

//turn it into a CSV string
var pagesCsv = pagesArr.join(',');

$.ajax({
   type: "POST",
   url: "some.aspx",
   data: pagesCsv,
   success: function(msg){
     alert( "Data Saved: " + msg );
   }
 });
var str='pages[]=&pages[]=21&pages[]=23&pages[]=34&pages[]=37&pages[]=40&pages[]=46&pages[]=49&pages[]=31&pages[]=50&pages[]=51&pages[]=52&pages[]=54&pages[]=55&pages[]=56&pages[]=57&pages[]=58&pages[]=61&pages[]=65&pages[]=70&pages[]=78&pages[]=78&pages[]=91&pages[]=94&pages[]=97&pages[]=100&pages[]=103&pages[]=106&pages[]=109&pages[]=112&pages[]=115&pages[]=119&pages[]=122&pages[]=123';
var tmpArr=str.split('&');
var pagesar=[];
对于(变量i=0;i
基于以下示例:

在C中#


也可以将所有内容放入一个对象中,如下所示:

var prm = { pages=[...], someOtherPages=[], additionalParam="", integer=1324 }
jQuery.ajax({
    url: "someurl.aspx",
    type: "POST",
    data: {prm: JSON.stringify(prm)},
    });
并使用以下命令在C#端解析prm:

JObject json=JObject.Parse(Request.Form[“prm”]);
JArray items=json[“页面”]作为JArray;
foreach(项目中的JToken项目)
{
int i=item[“type”].Value();//将项作为int
string s=item[“type”].Value();//将项作为字符串
JArray ar=item[“complex”]作为JArray;//将项作为数组
}

更简单、更灵活

我只是简单地发布它,我可以在C#中接收该字符串,我想知道是否有一种方法可以将其解释为C#中的数组,就像你在PHP中可以做的那样,例如@Shahin-我不确定,因为我不是ASP.NET的人,但是您可以将该字符串发送到服务器,然后通过在逗号处拆分它将其转换为一个数组,'我喜欢这个解决方案的外观,谢谢,我现在要试一试
        string[] keys = Request.QueryString.AllKeys;
        Array.Sort(keys);

        StringBuilder sb = new StringBuilder();
        foreach (string key in keys)
        {
            if (key.IndexOf("pages_")!=-1)
            {
                sb.Append(Request.QueryString[key]);
            }
        }

        // sb container the all values
var prm = { pages=[...], someOtherPages=[], additionalParam="", integer=1324 }
jQuery.ajax({
    url: "someurl.aspx",
    type: "POST",
    data: {prm: JSON.stringify(prm)},
    });
JObject json = JObject.Parse(Request.Form["prm"]);
JArray items = json["pages"] as JArray;
foreach (JToken item in items)
{
   int i = item["type"].Value<int>(); // take an item as int
   string s = item["type"].Value<string>(); // take an item as string
   JArray ar = item["complex"] as JArray; // that an item as an array
}