我有问题通过ajax将Javascript数组传递给我的应用程序。 ajax调用正在执行我的服务器端方法,但参数为null,即使在我的方法完成处理之前,ajax也会抛出错误(执行其错误函数)。
这是我的ajax电话:
<script>
var permissoesUsuario = Array();
$(function () {
//funcao de envio das permissoes
$('#btnSalvar').click(function () {
//desabilita o botao de salvar
$(this).attr('disabled', 'disabled');
$.each($('input[name="chkPermissao"]:checked'), function () {
permissoesUsuario.push({
IdEmpresa: $(this).attr('data-empresa'),
IdPermissao: $(this).attr('data-permissao')
});
});
$.ajax({
url: '@(Url.Content("~/Funcionario/Permissoes"))',
data: JSON.stringify(permissoesUsuario),
type: 'POST',
contentType: 'application/json; charset=utf-8',
success: function (response) {
permissoesUsuario = Array();
if (response == '') {
window.location = '@(Url.Content("~/Funcionario"))';
}
},
error: function(){
console.log('Erro');
}
});
});
</script>
我的服务器端方法:
[HttpPost]
public ActionResult Permissoes(IList<PermissaoAcessoInputModel> permInput)
{
//Do something
}
我的permInput变量为null ..
这是我的PermissaoAcessoInputModel类:
public class PermissaoAcessoInputModel
{
public virtual int IdPermissao { get; set; }
public virtual ulong? IdEmpresa { get; set; }
}
答案 0 :(得分:0)
您是否尝试过设置
traditional: true
在您的AJAX选项中?
离
$.ajax({
url: '@Url.Content("~/Funcionario/Permissoes")',
data: JSON.stringify(permissoesUsuario),
type: 'POST',
traditional: true,
contentType: 'application/json; charset=utf-8',
success: function (response) {
permissoesUsuario = Array();
if (response == '') {
window.location = '@Url.Content("~/Funcionario")';
}
},
error: function(){
console.log('Erro');
}
});