【发布时间】:2015-06-26 16:31:31
【问题描述】:
努力将数据对象从javascript 传递到C# MVC 5。
我不想使用 jquery。
我可以将 DataInterface 返回到 Javascript,但无法将其发送到服务器。
使用 Visual Studio DEBUG 我得到 DataInterface2.Age=0 和 DataInterface2.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