C# 使用Ajax[Project.Net]向控制器发送Post数据

C# 使用Ajax[Project.Net]向控制器发送Post数据,c#,ajax,asp.net-mvc-4,asp.net-ajax,C#,Ajax,Asp.net Mvc 4,Asp.net Ajax,我在.Net上有一个学校项目。 我尝试通过ajax向MVC控制器5发送一个POST json。我已达到控制器的正确功能,但收到的值为0或null: 尽管在浏览器控制台中正确填充了变量: 你认为错在哪里 以下是一些代码: 调用控制器的函数: function GeneratePDF() { var dataToSend; var age = 69; instruction = "trololololoCOCO"; dataToSend = JSON.s

我在.Net上有一个学校项目。 我尝试通过ajax向MVC控制器5发送一个POST json。我已达到控制器的正确功能,但收到的值为0或null:

尽管在浏览器控制台中正确填充了变量:

你认为错在哪里

以下是一些代码: 调用控制器的函数:

function GeneratePDF() {
    var dataToSend;
    var age = 69;    
    instruction = "trololololoCOCO";

    dataToSend = JSON.stringify({ item: { distance: age, instruction: instruction } });
   console.log("dataToSend : " + dataToSend);

    var uri = '/GeneratePDF/Print';
    $.ajax({
        type: 'POST',
        url: uri,
        data: dataToSend,
        contentType: "application/json; charset=utf-8",
    })
     .done(function (data) {
         console.log('pdf controller DONE');
     })
     .fail(function (jqXHR, textStatus, err) {
         console.log(jqXHR);
         $("#result").html(jqXHR.responseText);
     });
}
控制器:

[HttpPost]
        public ActionResult Print(test item)
        {
           //something

            return new Rotativa.ActionAsPdf("ViewPrint",new { id = item }) { FileName = "Cartographie.pdf" };
        }
public class test
    {
        public int distance;
        public string instruction;
        public test(int distance, string instruction)
        {
            this.distance = distance;
            this.instruction = instruction;
        }
    }
型号:

[HttpPost]
        public ActionResult Print(test item)
        {
           //something

            return new Rotativa.ActionAsPdf("ViewPrint",new { id = item }) { FileName = "Cartographie.pdf" };
        }
public class test
    {
        public int distance;
        public string instruction;
        public test(int distance, string instruction)
        {
            this.distance = distance;
            this.instruction = instruction;
        }
    }

字段是不允许的

您的模型声明必须具有get和set属性:

public int distance { get; set; }
public string instruction { get; set; }

@Vogeleer先生,当答案解决了你的问题时,别忘了接受/投票!