C#(.NET)处理Javascript数组/序列化
我使用tableDnD对表行重新排序,然后使用“$.tableDnD.serialize()”对它们进行序列化 我想把这个发送给C#处理,这样做有什么好处 下面是序列化的一个示例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
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
}