C# 如何将数组转换为列表<;字符串>;将正确的参数传递给控制器
我有以下javascript代码:C# 如何将数组转换为列表<;字符串>;将正确的参数传递给控制器,c#,jquery,asp.net,asp.net-mvc-3,C#,Jquery,Asp.net,Asp.net Mvc 3,我有以下javascript代码: var groupArray = []; groupArray.push($("#group").val()); var sendInfo = { Id: 0, Name: $("#disc-name").val(), Groups: groupArray, Description: $("#disc-description").val() }; $.post('/Ho
var groupArray = [];
groupArray.push($("#group").val());
var sendInfo = { Id: 0,
Name: $("#disc-name").val(),
Groups: groupArray,
Description: $("#disc-description").val()
};
$.post('/Home/Add', sendInfo, function(msg) { alert(msg.data }, 'json');
控制员:
[HttpPost]
public JsonResult Add(Something parameters) {
return Json( new {
data = _something.AddSomething(parameters)
},
JsonRequestBehavior.AllowGet);
}
而模型是:
public string Name {
get;
set;
}
public List<string> Groups {
get;
set;
}
public int Id {
get;
set;
}
public string Url {
get {
return FriendlyUrl.Slugify( this.Name );
}
}
public string Description {
get;
set;
}
公共字符串名称{
得到;
设置
}
公共列表组{
得到;
设置
}
公共整数Id{
得到;
设置
}
公共字符串Url{
得到{
返回FriendlyUrl.Slugify(this.Name);
}
}
公共字符串描述{
得到;
设置
}
在调试模式下,当我想通过AJAX发送sendInfo
对象时,我看到Groups
为空(在控制器页面中)
我想知道在Javascript代码中是否存在错误或其他方法。我不想改变模型结构
谢谢您应该像这样使用JSON.stringify
$.post('/Home/Add', JSON.stringify(sendInfo), function(msg) { alert(msg.data }, 'json');
您应该像这样使用JSON.stringify
$.post('/Home/Add', JSON.stringify(sendInfo), function(msg) { alert(msg.data }, 'json');
我认为jquery的$.post将通过在数组名称后添加一个额外的“[]”来序列化数组。在您的示例中,post数据将包含组[]=1和组[]=5以及组[]=74。。。(例如)。因为在C#中不能在变量名中使用括号,所以我不知道如何解决这个问题。我认为jquery的$.post将通过在数组名称后面加一个“[]”来序列化数组。在您的示例中,post数据将包含组[]=1和组[]=5以及组[]=74。。。(例如)。因为你不能在C中的变量名中使用括号,我不知道如何解决这个问题。JSON.stringify
我在哪里可以找到这个函数?在JSON库()中?因为现在它工作了,这是我的错:)。不管怎样,JSON.Stringify是个好主意。。。抱歉混淆:)PS:Up投票并接受:)JSON.stringify
在哪里可以找到这个函数?在JSON库()中?因为现在它工作了,这是我的错:)。不管怎样,JSON.Stringify是个好主意。。。很抱歉造成混淆:)PS:投票通过并被接受:)