在Ajax调用中传统:true选项和false之间的区别是什么?

ivi*_*yer 7 ajax post asp.net-ajax

所有这些都是为了丢弃MVC控制器的问题.

这是ajax的代码:

 $.ajax({
            //tipo de transferencia
            type: "POST",
            //dato a enviar
            dataType: 'Json',
            traditional:true,
            //enviar variable previamente formada contiene la estructura del modelo
            data:data,

            //liga previamente asignada esta liga contiene  la ruta controlador-metodo
            url: url,
Run Code Online (Sandbox Code Playgroud)

注意传统:真实.

tch*_*han 8

jQuery API文档

http://api.jquery.com/jQuery.Ajax/#jQuery-ajax-settings

传统

类型:布尔值

如果您希望使用传统的param序列化样式,请将此属性设置为true .

traditional属性更改了参数发送到服务器的方式.从jQuery 1.8开始,它默认为false.

对于ASP.NET MVC开发人员

$.ajax(url, {
   data : { a : [1,2,3] },
   traditional : true
}));

// `data` are sent as "a=1&a=2&a=3" 
Run Code Online (Sandbox Code Playgroud)

如果traditional设置为false数据将被发送为a%5B%5D=1&a%5B%5D=2&a%5B%5D=3

答案改编自这个帖子中的neverever