这个问题已被多次询问,但我找到的解决方案似乎都没有起作用.让我觉得这可能是一个新问题,也许是ASP.NET MVC 3的特定内容.
我正在使用JQuery Ajax对ASP.NET MVC 3控制器进行简单调用.像这样
var addressInfo = {
Address1: "423 Judy Road",
Address2: "1001",
City: "New York",
State: "NY",
ZipCode: "10301",
Country: "USA"
};
$.ajax({
url: '/home/check',
type: 'POST',
data: JSON.stringify(addressInfo),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function () {
alert("success");
},
error: function () {
alert("error");
}
});
Run Code Online (Sandbox Code Playgroud)
控制器看起来像这样
[HttpPost]
public ActionResult Check(AddressInfo addressInfo)
{
// Do something and return Json(something)
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,虽然它应该基于Scottgu的帖子的"JavaScript和AJAX改进"部分
我尝试了很多不同的变体,例如:
var args = new Object();
args.addressInfo = {
Address1: "423 …Run Code Online (Sandbox Code Playgroud) 我正在研究以CSV格式导出数据的机制.我JSON使用jQuery以格式发送数据:
var data = JSON.stringify(dataToSend);
$.post('DumpToCSV', { 'data': data });
Run Code Online (Sandbox Code Playgroud)
然后在控制器中我生成一个CSV文件:
public ActionResult DumpToCSV(string data)
{
Response.Clear();
XmlNode xml = JsonConvert.DeserializeXmlNode("{records:{record:" + data + "}}");
XmlDocument xmldoc = new XmlDocument();
//Create XmlDoc Object
xmldoc.LoadXml(xml.InnerXml);
//Create XML Steam
var xmlReader = new XmlNodeReader(xmldoc);
DataSet dataSet = new DataSet();
//Load Dataset with Xml
dataSet.ReadXml(xmlReader);
//return single table inside of dataset
var csv = CustomReportBusinessModel.ToCSV(dataSet.Tables[0], ",");
HttpContext context = System.Web.HttpContext.Current;
context.Response.Write(csv);
context.Response.ContentType = "text/csv";
context.Response.AddHeader("Content-Disposition", …Run Code Online (Sandbox Code Playgroud) Jquery ajax post请求将null json对象发布到mvc控制器.知道为什么会这样吗?
干杯
这是我的模特
public class CommentModel
{
public string EmailAddress { get; set; }
public string Name { get; set; }
public int ActivityId { get; set; }
public string CommentText { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
调节器
[HttpPost]
public ActionResult Index(CommentModel commentModel)
{
int i = commentModel.ActivityId;
string k = commentModel.CommentText;
return View();
}
Run Code Online (Sandbox Code Playgroud)
JQuery的
$("#CommentForm").submit(function () {
var formDataAsJson = GetFormDataAsJson();
$.ajax({
url: $(this).attr("action"),
dataType: 'json',
type: "POST",
data: JSON.stringify({ commentModel: formDataAsJson }),
contentType: 'application/json; charset=utf-8', …Run Code Online (Sandbox Code Playgroud)