javascript - 如何将 Json 对象(或字符串数​​据)从 Javascript xmlhttprequest 发送到 MVC Controller

标签 javascript asp.net asp.net-mvc xmlhttprequest

我在 ASP.NET MVC 中创建了一个 Web 应用程序,并尝试通过 Javascript AJAX 调用 Controller 。在 Jquery 中,我们可以发送一个 json 对象,MVC 模型绑定(bind)器会自动尝试创建一个 .NET 对象并作为参数传入 Controller 。

但是,我正在使用无法使用 jquery 的网络 worker 。所以我通过 vanilla xmlhttprequest 对象进行 AJAX 调用。有没有办法通过这种方法发送 Json 对象?

我使用了 xmlhttprequest 的 send 方法,但模型对象在 Controller 中为 null :(

最佳答案

您应该能够使用 JSON2 对其进行字符串化并设置 Content-Type标题到 application/json当你发帖时。

http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js

你会做这样的事情:

var xhr = new XMLHttpRequest();
xhr.open('POST', '/Controller/Action');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && xhr.status == 200) {
        alert(xhr.responseText);
    }
}
xhr.send(JSON.stringify(myData));

关于javascript - 如何将 Json 对象(或字符串数​​据)从 Javascript xmlhttprequest 发送到 MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6055714/

相关文章:

c# - 加载 View 后是否可以在 Controller 中调用操作?

javascript - 删除 select2 中的搜索框后,键盘选择选项不起作用

javascript - v-if 不在模板上工作

c# - 无法对 System.String 和 System.DateTime 执行 '>' 操作

asp.net - 为什么 <%# Eval(...) %> 不渲染?实际上在客户端显示 "<%# Eval(...) %>"

asp.net - 如何在单击按钮时更改包含的 CSS 文件?

asp.net-mvc - 如何编写单元测试来检查返回的项目是否属于列表类型

javascript - 对象不返回最大数量 - JS

javascript - 将 map 视口(viewport)点击位置转换为 map 坐标(Bing map )

javascript - $scope 对象在 ng-view angularjs + asp.net mvc 中未定义