[英]Ajax XMLHttpRequest to MVC 5 HttpPost ActionResult without jquery
努力将数据对象从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);
}
}
您的问题是使用public
变量,您需要使用getter/setter
更改property
。
更改自
public class DataInterface
{
public string Name;
public Int16 Age;
}
到
public class DataInterface
{
public string Name { get; set; }
public int Age { get; set; }
}
我在本地机器上测试过,它有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.