C# 通过ajax jquery传递类类型参数
我有一个结构如下的班级C# 通过ajax jquery传递类类型参数,c#,jquery,ajax,list,asp.net-mvc-4,C#,Jquery,Ajax,List,Asp.net Mvc 4,我有一个结构如下的班级 public class MyType { [Key] [Required] public string name { get; set; } [Key] [Required] public string type{ get; set; } } Public Class A { string Id{get;set;} public List<MyTy
public class MyType
{
[Key]
[Required]
public string name { get; set; }
[Key]
[Required]
public string type{ get; set; }
}
Public Class A
{
string Id{get;set;}
public List<MyType> aList{get;set;}
}
我的行动方法如下:
var listitem=[
{name:"a",type:1},
{name:"b",type:2},
{name:"c",type:3}
]
$.ajax({
url: '@Url.Action("ActionMethod", "Controller")',
type: 'post',
async: false,
data: {
Id: 1,
aList :listitem
},
success: function (resp) {
},
error: function (resp) {
}
});
[HttpPost]
public ActionResult ActionMethod(A adata)
{
return some action;
}
我正在ActionMethod中获取Id值,但列表项为空?我怎样才能通过列表?尝试如下:
var adata = {
Id: 1,
aList: [
{ name: "a", type: 1 },
{ name: "b", type: 2 },
{ name: "c", type: 3 }
]
}
$.ajax({
url: '@Url.Action("ActionMethod", "Controller")',
type: 'post',
data: JSON.stringify(adata),
contentType: "application/json; charset=utf-8",
success: function (resp) {
},
error: function (resp) {
}
});
试着这样做:
var adata = {
Id: 1,
aList: [
{ name: "a", type: 1 },
{ name: "b", type: 2 },
{ name: "c", type: 3 }
]
}
$.ajax({
url: '@Url.Action("ActionMethod", "Controller")',
type: 'post',
data: JSON.stringify(adata),
contentType: "application/json; charset=utf-8",
success: function (resp) {
},
error: function (resp) {
}
});
在您的
客户端和服务器上的数据类型中应该有同步
,请将您的MyType
类作为well@manish我认为问题在于:您的数据(列表)是一个列表,但您的操作方法只接受一个对象。async:false
对于用户友好性来说是一个糟糕的想法(因为它会在请求期间锁定整个浏览器)而且在99%的情况下完全没有必要。此外,一些浏览器已经弃用了它,因此您可以期望它在将来完全停止工作。@himyata action take list,因为action method中的列表计数为3,但list的所有值都为空。在客户端和上的数据类型中应该有一个同步服务器
,请将您的MyType
类作为well@manish我认为问题在于:您的数据(列表)是一个列表,但您的操作方法只接受一个对象。async:false
对于用户友好性来说是一个糟糕的主意(因为它在请求期间锁定了整个浏览器)而且在99%的情况下完全没有必要。另外,一些浏览器已经弃用了它,因此您可以期望它在将来完全停止工作。@himyata action take list,因为action method中的列表计数为3,但list的所有值都为空。您还需要设置contentType:'application/json'
(不要使用async:false
)@StephenMuecke谢谢。我编辑了代码我忘记添加内容类型谢谢你还需要设置contentType:'application/json'
(不要使用async:false
)@StephenMuecke谢谢。我编辑了代码我忘记添加内容类型谢谢