C# 使用Ajax[Project.Net]向控制器发送Post数据
我在.Net上有一个学校项目。 我尝试通过ajax向MVC控制器5发送一个POST json。我已达到控制器的正确功能,但收到的值为0或null: 尽管在浏览器控制台中正确填充了变量: 你认为错在哪里 以下是一些代码: 调用控制器的函数: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
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先生,当答案解决了你的问题时,别忘了接受/投票!