必须有一些我错过的东西.我尝试使用$.ajax()和$.post()来发送一个字符串到我的ASP.NET MVC控制器,并且当控制器到达时,字符串在它到达时为空.所以这里是我尝试的post方法:
$.post("/Journal/SaveEntry",JSONstring);
这里是我尝试的ajax方法:
$.ajax({ url: "/Journal/SaveEntry",type: "POST",data: JSONstring });
这是我的控制器:
public void SaveEntry(string data) { string somethingElse = data; }
对于背景,我使用JSON.stringify()序列化了一个JSON对象,并且这已经成功了.我试图将它发送到我的控制器到Deserialize()它.但是正如我所说,字符串每次都到达null.有任何想法吗?
非常感谢.
更新:回答我的问题是我没有使用键/值对作为$.post()的参数.所以我试过这个,但是字符串仍然以null的形式到达Controller:
$.post("/Journal/SaveEntry",{ "jsonData": JSONstring });
解决方法
回答.我的第一次更新后没有正确设置变量名.我将Controller中的变量名称更改为jsonData,所以我的新控制器标头看起来像:
public void SaveEntry(string jsonData)
我在JS中的帖子动作如下所示:
$.post("/Journal/SaveEntry",{ jsonData: JSONstring });
JSONstring是使用json.org提供的JSON plugin序列化的“串化”(或“序列化”)JSON对象.所以:
JSONstring = JSON.stringify(journalEntry); // journalEntry is my JSON object
因此,$.post中的变量名称和Controller方法中的变量名必须是相同的名称,否则将无效.很高兴知道.感谢您的答案.