jquery - 使用 JQuery $.ajax 进行 JSON 模型绑定(bind),无需将传统设置为 true

标签 jquery asp.net-mvc asp.net-mvc-3

我在应用程序中使用 Jquery 1.6.1 和 JQuery UI 可排序,并注意到 JSON 模型绑定(bind)停止工作。我必须将 $.ajax 的“传统”参数设置为 true 才能使其正常工作。

$('.tracks').sortable({
    update: function (event, ui) {
        var order = $(this).sortable('toArray');

        $.ajax({
            url: '/controller/action/',
            type: 'post',
            traditional: true, // For model binding to work
            data: { 'order': order }
        });
    }
});

我的 Controller

[HttpPost]
public ActionResult Order(string[] order)
{
    return new EmptyResult();
}

显然,JQuery 改变了使用数组时 post 变量名称的形成方式,在末尾添加了 []。这一变化显然是针对 PHP 和 Ruby 用户的。

是否可以在当前的 ASP.NET MVC 代码中进行简单的更改,以使模型绑定(bind)能够在不使用传统方式的情况下工作?

最佳答案

不,但你可以这样做:

jQuery.ajaxSettings.traditional = true;

在您的母版页中(如果您使用它们)

关于jquery - 使用 JQuery $.ajax 进行 JSON 模型绑定(bind),无需将传统设置为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6470146/

相关文章:

asp.net - 如何让 Url.Action 使用正确的端口号?

jquery - knockout 如何获取 $parent 的 $parent

javascript - 如何防范Javascript中的客户端DOM代码注入(inject)漏洞?

jquery - 监听本地存储更改事件

javascript - MVC 转换 json 存储为字符串

c# - 有条件地将 CSS 类添加到 Web 网格列项目

用于在悬停时显示 DIV 的 jQuery 插件

asp.net-mvc - 使用 Razor 引擎在mvc4中重写url

c# - 如何使用带有 Entity Framework 的 ASP.net MVC4 上传/显示图像

asp.net-mvc - 如何将 http-request 转换为正确的对象?