2016-06-10 63 views
-1

我使用引導在ASP.NET MVC上製作一個CRUD頁面。我的問題是當我加載一個不同的記錄,並試圖更新。隨着一些記錄工作正常,並與其他人沒有。我得到404沒有發現錯誤。Ajax Jquery拋出404未找到有時

我使用相同的動作插入或更新。這些字段都是字符串。 起初我使用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 Not Found Error。

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); 
     } 

我認爲錯誤是因爲有時不發送的所有參數的方法。但是,即使設置所有參數,爲什麼還沒有工作?

非常感謝

+0

'我使用相同的操作插入或更新'... whyyyy !!! – Hackerman

+0

因爲我不想在jQuery代碼中添加邏輯。相反,我在控制器內部執行邏輯。 –

+0

此外,當你做CRUD操作時,最好使用'post'而不是'get' ....你應該使用get來獲取這樣的信息和東西......也可以在插入項中使用斷點方法,以便更好地瞭解404反應的實際原因......美國政府間諜活動委員會,美國國務卿阿爾古納認爲, – Hackerman

回答

0

經過一番研究,我嘗試了幾個參數的控制器動作。 發現最後兩個地方有很多文字。可能發生某些字符會使發送的值不同。

正如哈克曼說,是更好的後,而不是GET ..我試過,工作正常。

非常感謝

相關問題