2017-06-22 75 views
0

我還在學習MVC 顯示由Edit,Details,Delete鏈接組成的員工網格。在MVC回發後保持jquery對話框打開

關於編輯點擊: 我打開一個jQuery對話框,使用下面的代碼並調用一個MVC動作。 動作URL位於加載函數的url參數中。

$(".edit").on("click", function (e) { 
      alert("editing"); 
      var url = $(this).attr('href'); 
      $("#dialog-edit").dialog({ 
       title: 'Edit Details', 
       autoOpen: false, 
       resizable: false, 
       height: 455, 
       width: 550, 
       show: { effect: 'drop', direction: "up" }, 
       modal: true, 
       draggable: true, 
       open: function (event, ui) { 
        $(this).load(url); 

       }, 
       close: function (event, ui) { 
        $(this).dialog('close'); 
       } 
      }); 

      $("#dialog-edit").dialog('open'); 
      return false; 
     }); 

我已經把一些服務器端驗證。在更改員工詳細信息(在通過上面的編輯鏈接打開模式對話框內)後單擊更新按鈕。 無論服務器端驗證失敗或通過,模態對話框正在關閉,我知道在回發中很自然。

我想知道什麼是正確的方式再次打開該jquery模式對話框如果服務器端驗證失敗,錯誤消息顯示用戶的原因。

回答

0

使用標誌的響應知道,如果你需要打開的對話框並顯示錯誤,但:這是不是一個好的做法

它可能會更好,如果你做一個GET與jQuery,然後如果沒有錯誤,您可以處理響應並關閉對話框。

0

讓我知道,如果跌破解決方案有一些問題:

我修改了jQuery的對話框代碼,使一個AJAX調用更新,而不是提交表單的細節。

此外,改性動作方法返回代替的ActionResult

$(".edit").on("click", function (e) { 
     alert("editing"); 
     var url = $(this).attr('href'); 
     $("#dialog-edit").dialog({ 
      title: 'Edit Details', 
      autoOpen: false, 
      resizable: false, 
      height: 455, 
      width: 550, 
      show: { effect: 'drop', direction: "up" }, 
      modal: true, 
      draggable: true, 
      buttons: { 
       "Save" : function(){ 
        $.post("Student/Edit", $("form").serialize(), function (data) { 
         if (data) { 
          alert("data saved"); 
          $("#dialog-edit").dialog('close'); 
          window.location.href = "Student/Index"; 
         } 
         else { 
          alert("not saved"); 
         } 

        }); 
       } 
      }, 
      open: function (event, ui) { 
       $(this).load(url); 

      }, 
      close: function (event, ui) { 
       $(this).dialog('close'); 
      } 
     }); 

     $("#dialog-edit").dialog('open'); 
     return false; 
    }); 
JsonResult