2015-06-11 60 views
0

我使用,bootbox JS顯示模態對話框:http://bootboxjs.com/documentation.html更改內容 - BootBox JS

我試圖表現出的模態Dialgue的形式。此表單處於局部視圖。

這工作正常,我可以加載部分視圖,並使用下面的代碼在莫代爾顯示。

HTML:

<button type="button" class="btn btn-labeled btn-primary pull-right" 
      data-modal-title="Create Workshop" data-action="OpenPartialViewDialog" 
      data-action-url="@Url.Action("CreateWorkshop", "Workshops")"> 
     <span class="btn-label"><i class="glyphicon glyphicon-plus"></i></span>Create 
    </button> 

jQuery的

$("body").on("click", '*[data-action="OpenPartialViewDialog"]', function (e) { 

    e.stopPropagation(); 

    var btn = $(this); 
    var title = btn.data("modal-title"); 
    $.ajax({ 
     url: btn.data("action-url"), 
     type: "GET", 
     success: function (response) { 

      bootbox.dialog({ 
       message: response, 
       title: title, 
       buttons: { 
        success: { 
         label: "Save", 
         className: "btn-success", 
         callback: function() { 
          $.ajax({ 
           url: btn.data("action-url"), 
           type: "POST", 
           data: $("form").serialize(), 
           success: function (response) { 

           }, 
           error: function (response) { 
            return false; 
           } 

          }); 

          return false; 
         } 
        }, 
        danger: { 
         label: "Cancel", 
         className: "btn-danger" 
        } 
       } 
      }); 
     } 
    }); 
}); 

正如你可以看到代碼,當用戶點擊該按鈕Save上面我發送一個Ajax請求。

//EXTRACTED CODE FROM ABOVE 
callback: function() { 
$.ajax({ 
    url: btn.data("action-url"), 
    type: "POST", 
    data: $("form").serialize(), 
    success: function (response) { 

    } 
}); 

所以這是我想做的事,

這裏是我的控制器,在那裏我張貼的形式代碼:

[HttpPost] 
    public ActionResult CreateWorkshop(WorkshopDTO model) 
    { 
     if (ModelState.IsValid) 
     { 

     } 
     return PartialView(model); 
    } 

當用戶提交表單的控制器檢查用於服務器端驗證。

如果驗證失敗,控制器返回HTML(含驗證消息的局部視圖)

我想刷新我的模式內容,以便它顯示了驗證。

我無法看到文件與此相關的任何東西:http://bootboxjs.com/documentation.html#bb-custom-dialog

摘要:這是我需要做的。這種模態的樣子, 當用戶點擊保存,如果驗證失敗,更新模式消息 內容

enter image description here

回答

1

你可以用自己的參數另一bootbox打來的回調函數中的初始模態。在第二個模式上禁用動畫,以使用戶看起來像剛剛更改的第一個模式。

bootbox.dialog({ 
    message: response, 
    title: title, 
    buttons: { 
     success: { 
      label: "Save", 
      className: "btn-success", 
      callback: function() { 
       bootbox.dialog({ 
        animate: false, 
        message: newresponse, 
        title: newtitle, 
        etc... 
+0

聽起來像個好主意。將嘗試一下,看看結果。 –

+0

當我點擊提交按鈕時,屏幕上仍然出現毛刺。 –