Meg*_*att 15 asp.net-mvc jquery controller
必须有一些我想念的东西.我已经尝试使用$ .ajax()和$ .post()将字符串发送到我的ASP.NET MVC控制器,并且在到达Controller时,字符串在到达时为空.所以这是我尝试的post方法:
$.post("/Journal/SaveEntry", JSONstring);
Run Code Online (Sandbox Code Playgroud)
这是我尝试的ajax方法:
$.ajax({
url: "/Journal/SaveEntry",
type: "POST",
data: JSONstring
});
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
public void SaveEntry(string data)
{
string somethingElse = data;
}
Run Code Online (Sandbox Code Playgroud)
对于后台,我使用JSON.stringify()序列化了一个JSON对象,这已经成功.我正在尝试将它发送到我的Controller以反序列化()它.但正如我所说,字符串每次都以null结尾.有任何想法吗?
非常感谢.
更新:回答我的问题是我没有使用键/值对作为$ .post()的参数.所以我尝试了这个,但字符串仍然作为null到达Controller:
$.post("/Journal/SaveEntry", { "jsonData": JSONstring });
Run Code Online (Sandbox Code Playgroud)
Meg*_*att 23
回答.在第一次更新后,我没有正确设置变量名称.我将Controller中的变量名称更改为jsonData,因此我的新Controller标题如下所示:
public void SaveEntry(string jsonData)
Run Code Online (Sandbox Code Playgroud)
我在JS中的帖子操作如下:
$.post("/Journal/SaveEntry", { jsonData: JSONstring });
Run Code Online (Sandbox Code Playgroud)
JSONstring是一个"字符串化"(或"序列化")JSON对象,我使用json.org提供的JSON插件进行序列化.所以:
JSONstring = JSON.stringify(journalEntry); // journalEntry is my JSON object
Run Code Online (Sandbox Code Playgroud)
因此$ .post和Controller方法中的变量名必须是同一个名称,否则什么都不会起作用.很高兴知道.谢谢你的回答.
最终答案:
似乎变量名称没有排在他的帖子中,正如我在整理数据格式问题后在评论中建议的那样(假设这也是一个问题.
实际上,请确保使用服务器端代码正在查找的正确密钥名称以及Olek的示例 - 即.如果您的代码正在寻找可变数据,那么您需要使用数据作为密钥. - prodigitalson 6小时前
@prodigitalson,有效.变量名称没有排队.你会发贴第二个答案,我可以接受吗?谢谢. - Mega Matt 6小时前
所以他需要使用键/值对,并确保他从服务器端的请求中获取正确的变量.
data参数必须是键值对
$.post("/Journal/SaveEntry", {"JSONString": JSONstring});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48724 次 |
| 最近记录: |