2013-02-07 83 views
0

我有一個窗體,您可以編輯用戶。此窗體顯示爲彈出窗口(我正在使用colorbox插件)。當我點擊保存後,我希望它保持彈出頁面,而不是關閉彈出窗口,以便我可以顯示「成功保存的信息」文本。現在,每當我點擊保存它關閉彈出式窗體並返回到前一頁。我可以保存彈出窗口嗎?任何幫助表示讚賞使保存在頁面上彈出保留(colorbox)

VIEW

$('.openDialog').colorbox({ 
        transition: "elastic", 
        width: "40%", height: "80%" 
       }); 

控制器

[HttpPost] 
     public ActionResult Edit(UserViewModel vm) 
      { 
       Save(vm); 
       return View(vm); 
      } 

VIEW

<input type="submit" value="Save" id="btnSave" class="openDialog"/> 

用ajax形式提交,但彈出窗口不會去控制試過,我添加了不顯眼的腳本頁面和網頁配置以及jquery 1.8仍然不好

@using (Ajax.BeginForm("Edit", "User", 
      new AjaxOptions 
      { 
       HttpMethod = "POST", 
       InsertionMode = InsertionMode.Replace 
      })) 
+1

使用ajax回調到您的控制器... – Garry

回答

1

只需將ifbox屬性設置爲true即可使用colorbox。當您最初顯示錶格時,請添加參數iframe: true

不要再上點擊呼叫$.colorbox,所以在看你的輸入標籤應該僅僅是:

<input type="submit" value="Save" id="btnSave" /> 

當你點擊提交按鈕,表格提交時,其結果將返回相同的colorbox iframe。 Colorbox在內部使用AJAX並創建iframe來爲您處理所有這些,沒有什麼比這更容易的了。

要查看此方法的實際應用,請查看http://www.jacklmoore.com/colorbox/example1/,並查看名爲「Outside Webpage(iFrame)」的iFrame示例,其中會獲取Wiki搜索頁,然後提交表單,所有內容均在同一個colorbox中。

+0

謝謝!這是colorbox的一個很好的功能。作爲答覆作爲答覆 –

1

發生了什麼事情是您的表單正在提交,最有可能是同一頁面,所以頁面「重新加載」,但與提交的表單數據。

爲了做到你想要的,你必須讓你的表單通過ajax提交。這種方式表單通過JavaScript提交,你不會得到頁面重新加載。

在這種情況下,代替您的控制器返回視圖,它會返回狀態消息,讓您知道提交是否成功(以及您需要更新頁面的任何其他內容)。

+0

我需要使我的表單部分使用ajax.beginform嗎? –