Ajax Jquery有时会抛出404

时间:2016-06-10 15:46:45

标签: jquery ajax asp.net-mvc

我使用bootstrap在ASP.NET MVC上创建一个CRUD页面。我的问题是当我加载不同的记录,并尝试更新。有些记录工作正常,与其他人没有。我得到了de 404 Not found错误。

我使用相同的Action进行插入或更新。字段都是字符串。 起初我使用jquery serialize()函数来获取表单的值。

    function InsertButtonEvent() {

    var formvalues = $('#filialForm').serialize();


    $.blockUI({ message: '<h1>Un momento por favor..</h1>' });
    $.ajax({
        type: "GET",
        url: '../CatFiliales/InsertItem',
        data: formvalues,
        error: function (xhr, ajaxOptionx, thrownError) {
            swal('error', xhr.status + ' ' + thrownError, 'error');
            $.unblockUI();
        }
    })
   .done(function (htmlPartialView) {
       swal('', 'Registro Insertado', 'success');
       renderPartialView(htmlPartialView);

   });

比较要发布的表单值,缺少一些变量。所以,我强制发送相同的变量(即使没有数据)。并且结果仍然相同,有时我可以使用控制器方法,有时我会得到404未找到错误。

function InsertButtonEvent() {
    var edo = $('#cmbEstadoLegal').val();
    var formvalues = $('#filialForm').serialize();
    var txtClaveFilialjq =  $('#txtClaveFilial').val();  
    var txtDescripcionBrevejq = $('#txtDescripcionBreve ').val(); 
    var txtDescripcionjq = $('#txtDescripcion').val(); 
    var txtIdFiscaljq = $('#txtIdFiscal').val(); 
    var txtNodoFilialjq= $('#txtNodoFilial ').val();
    var cmbEstadojq = $('#cmbEstado').val(); 
    var cmbParticipacionAccionariajq= $('#cmbParticipacionAccionaria').val(); 
    var cmbCveEdoOperjq = $('#cmbCveEdoOper').val(); 
    var cmbGiroFilialjq=  $('#cmbGiroFilial').val(); 
    var cmbGrupoFilialesjq= $('#cmbGrupoFiliales').val(); 
    var cmbParaestataljq= $('#cmbParaestatal').val(); 
    var cmbTipoEmpresajq= $('#cmbTipoEmpresa').val();
    var cmbEstadoLegaljq= $('#cmbEstadoLegal').val(); 
    var txtFecConstitjq =  $('#txtFecConstit').val(); 
    var cmbMonedaNormalizadajq = $('#cmbMonedaNormalizada ').val();  
    var cmbMonedasAccionesjq = $('#cmbMonedasAcciones').val(); 
    var txtValorContableAccionesjq =   $('#txtValorContableAcciones').val(); 
    var txtFecValAccionesjq= $('#txtFecValAcciones').val(); 
    var txtDomiciliojq = $('#txtDomicilio').val(); 
    var txtSitioWebFinaljq =  $('#txtSitioWebFinal').val(); 
    var txtTelefonojq=  $('#txtTelefono').val(); 
    var txtNumTeleFaxjq= $('#txtNumTeleFax').val(); 
    var cmbPaisjq= $('#cmbPais').val();  
    var cmbResidenciasjq =  $('#cmbResidencias').val();  
    var cmbNacionalidadesjq =  $('#cmbNacionalidades').val(); 
    var txtObjetivojq =  $('#txtObjetivo').val(); 
    var txtObservacionesjq = $('#txtObservaciones').val();


    $.blockUI({ message: '<h1>Un momento por favor..</h1>' });
    $.ajax({
        type: "GET",
        url: '../CatFiliales/InsertItem',
        data: {
            txtClaveFilial : txtClaveFilialjq ,  
            txtDescripcionBreve  :  txtDescripcionBrevejq , 
            txtDescripcion  :  txtDescripcionjq, 
            txtIdFiscal  : txtIdFiscaljq , 
            txtNodoFilial  : txtNodoFilialjq ,
            cmbEstado  : cmbEstadojq , 
            cmbParticipacionAccionaria  :  cmbParticipacionAccionariajq    , 
            cmbCveEdoOper  : cmbCveEdoOperjq , 
            cmbGiroFilial  : cmbGiroFilialjq , 
            cmbGrupoFiliales  : cmbGrupoFilialesjq , 
            cmbParaestatal  : cmbParaestataljq , 
            cmbTipoEmpresa  : cmbTipoEmpresajq ,
            cmbEstadoLegal : cmbEstadoLegaljq , 
            txtFecConstit  :   txtFecConstitjq , 
            cmbMonedaNormalizada  : cmbMonedaNormalizadajq,  
            cmbMonedasAcciones  :  cmbMonedasAccionesjq , 
            txtValorContableAcciones  : txtValorContableAccionesjq , 
            txtFecValAcciones  : txtFecValAccionesjq , 
            txtDomicilio  : txtDomiciliojq , 
            txtSitioWebFinal  : txtSitioWebFinaljq, 
            txtTelefono  : txtTelefonojq, 
            txtNumTeleFax : txtNumTeleFaxjq , 
            cmbPais  :  cmbPaisjq ,  
            cmbResidencias  :cmbResidenciasjq,  
            cmbNacionalidades  :cmbNacionalidadesjq , 
            txtObjetivo: txtObjetivojq,
            txtObservaciones: txtObservacionesjq

        },
        error: function (xhr, ajaxOptionx, thrownError) {
            swal('error', xhr.status + ' ' + thrownError, 'error');
            $.unblockUI();
        }
    })
   .done(function (htmlPartialView) {
       swal('', 'Registro Insertado', 'success');
       renderPartialView(htmlPartialView);

   });

这是我的控制器代码

public ActionResult InsertItem(
        string  txtClaveFilial,  
        string  txtDescripcionBreve , 
        string  txtDescripcion , 
        string  txtIdFiscal , 
        string  txtNodoFilial ,
        string  cmbEstado , 
        string  cmbParticipacionAccionaria , 
        string  cmbCveEdoOper , 
        string  cmbGiroFilial , 
        string  cmbGrupoFiliales , 
        string  cmbParaestatal , 
        string cmbTipoEmpresa ,
        string  cmbEstadoLegal, 
        string  txtFecConstit , 
        string  cmbMonedaNormalizada ,  
        string  cmbMonedasAcciones , 
        string  txtValorContableAcciones , 
        string  txtFecValAcciones , 
        string  txtDomicilio , 
        string  txtSitioWebFinal , 
        string  txtTelefono , 
        string  txtNumTeleFax , 
        string  cmbPais ,  
        string  cmbResidencias ,  
        string  cmbNacionalidades , 
        string  txtObjetivo , 
        string  txtObservaciones


          )
        {

//Do all the stuff with variables;


            return PartialView("_Registers", catFilialesViewModel.Filiales);
        }

我认为错误是因为有时候并没有将所有参数发送到方法。但是,即使我设置了所有参数,为什么也不起作用?

非常感谢

1 个答案:

答案 0 :(得分:0)

经过一番研究,我尝试了几个参数的控制器动作。 发现最后两个文本很多的地方。可能会发生某些字符使发送的值不同。

AS Hackerman说,更好的是发帖而不是GET ..我尝试过并且工作正常。

非常感谢