【问题标题】:Ajax XMLHttpRequest to MVC 5 HttpPost ActionResult without jquery没有 jquery 的 Ajax XMLHttpRequest 到 MVC 5 HttpPost ActionResult
【发布时间】:2015-06-26 16:31:31
【问题描述】:

努力将数据对象从javascript 传递到C# MVC 5
我不想使用 jquery。
我可以将 DataInterface 返回到 Javascript,但无法将其发送到服务器。
使用 Visual Studio DEBUG 我得到 DataInterface2.Age=0DataInterface2.Name=null.

Javascipt 发送:-

var uri = '/Action/ActionInterface'
var xmlhttp;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
        fDone(JSON.parse(xmlhttp.responseText));
    }
}
var data = { "Name": "Joe", "Age": 33  };
var sendstr = JSON.stringify(data);
xmlhttp.open("POST", uri, true);
xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
xmlhttp.send(sendstr);

C# 中接收:-

public class DataInterface
{
    public string Name;
    public Int16 Age;
    //public DateTime Birthdate;
}
public class ActionController : Controller
{
    [HttpPost]
    public ActionResult ActionInterface(DataInterface DataInterface2)
    {
        .... Using Debug DataInterface2.Age=0 and DataInterface2.Name=null 
        ....
        return Json(DataInterface1, JsonRequestBehavior.DenyGet);
    }
}

【问题讨论】:

  • 是否有任何控制台错误?
  • 不是真的 - GET localhost:52062/favicon.ico 404(未找到)此消息毕业后 - 加载资源失败:服务器响应状态为 404(未找到)localhost:52062/favicon.ico 当我添加正文时html - 但这是在 xmlhttp.send(sendstr); xmlhttp.send(sendstr); 上没有任何内容
  • 确保你有正确的datainterface数组
  • 什么数组? “var data”不是数组,“public class DataInterface”不是。我刚刚更改了 var data = { Name: "Joe", Age: 33 };但没有改善。
  • 我也尝试过 public ActionResult ActionInterface(string DataInterface2) 因为 JSON.stringify 将数据更改为字符串并且我得到 null。

标签: c# ajax asp.net-mvc-5 xmlhttprequest


【解决方案1】:

您的问题是使用public 变量,您需要将property 更改为getter/setter

改变

public class DataInterface
{
    public string Name;
    public Int16 Age;
}

public class DataInterface
{
    public string Name { get; set; }
    public int Age { get; set; }
}

我在本地机器上测试过,它工作正常。

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    相关资源
    最近更新 更多