Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过ajax jquery传递类类型参数_C#_Jquery_Ajax_List_Asp.net Mvc 4 - Fatal编程技术网

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谢谢。我编辑了代码我忘记添加内容类型谢谢