asp.net-mvc – 使用jQuery $.ajax()和$.post()发送字符串数据到MVC控制器

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 使用jQuery $.ajax()和$.post()发送字符串数据到MVC控制器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
必须有一些我错过的东西.我尝试使用$.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方法中的变量名必须是相同的名称,否则将无效.很高兴知道.感谢您的答案.

原文链接:https://www.f2er.com/aspnet/249800.html

猜你在找的asp.Net相关文章