Javascript 如何将类参数发送到控制器

Javascript 如何将类参数发送到控制器,javascript,jquery,ajax,parameter-passing,Javascript,Jquery,Ajax,Parameter Passing,我的班级 public class Disciplines { public int Id { get; set; } public string Name { get; set; } } 我的控制器 public void test (Disciplines discipline) { } 我想使用ajax将参数发送到测试控制器 我的javascript是 var disciplines = {Id:1, name:"white"}; $

我的班级

public class Disciplines
{
    public int Id { get; set; }

    public string Name { get; set; }
}
我的控制器

public void test (Disciplines discipline)
{

}
我想使用ajax将参数发送到测试控制器

我的javascript是

    var disciplines = {Id:1, name:"white"};
            $.ajax({

                type: "POST",
                url: "test",
                data: { disciplines:disciplines },
                dataType: "Json",
                success: function (response) {
                },
                beforeSend: function () {


   showIndicator();
            },
            error: onFailure,

        });
调试it控制器时,参数始终为空。 我怎样才能成功呢。非常感谢。

您的代码应该是

 var disciplines = {"Id":1, "Name":"white"};

$.ajax({

                type: "POST",
                url: "test",
                data: { disciplines:disciplines },
                dataType: "Json",
                success: function (response) {
                },
                beforeSend: function () {


   showIndicator();
            },
            error: onFailure,

        });
控制器

[HttpPost]
public void test (Disciplines discipline)
{

}

必须具有与类中相同的参数名称

问题是因为模型绑定器将在请求中查找
id
名称
属性,而不是
规程
。试试这个:

var disciplines = {
    id: 1, 
    name: "white"
};

$.ajax({
    type: "POST",
    url: "test",
    data: disciplines,
    dataType: "json",
    success: function (response) {
    },
    beforeSend: function () {
        showIndicator();
    },
    error: onFailure,
});

您是否尝试过
数据:规程,
?您必须在ajax中具有与“Id”,“name”相同的对象参数名称,您正在编写
数据类型:“Json”
,但您期望的是
规程
,一个自定义对象。您必须接收JSON并手动将其解析到您的对象中。我假设这是因为将对象中的参数名用引号括起来不会有任何区别。模型绑定器将查找
Id
Name
属性,而不是
规程
@RoryMcCrossan,它们在
Name
Name
中有所不同。这不绑定到参数名。鉴于OP在ASP.Net MVC中工作(考虑到代码结构和他之前的问题)这没什么区别——模型绑定器不区分大小写。