如何发送 class 参数给控制器

How to send class parameters to controller

我的class;

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,

        });

当我调试它时,控制器参数总是空的。 我怎样才能成功。非常感谢。

您的代码应该是

 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)
{

}

必须具有与 class

中相同的 参数名称

问题是因为模型绑定器将在请求中查找 idname 属性,而不是 disciplines。试试这个:

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

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