2013-04-04 34 views
3

我試圖在jQuery UI對話框窗口中顯示一個局部視圖,但是我沒有很好的加載函數。對話框窗口打開,但我沒有看到局部視圖的內容。加載MVC4在jQuery中的部分視圖ui對話框窗口

JS代碼位於外部js文件中。警報顯示。

$(document).ready(function() { 
    $('#dialog-modal').dialog({ 
     autoOpen: false, 
     //width: 200, 
     height: 400, 
     modal: true, 
     open: function (event, ui) { 
      //alert("test"); 
      $(this).load("@Url.Action(\"OpenDialogWindow\", \"Home\")"); 
     } 
    }); 
}); 

=========================================== =======================

我的div在這樣的母版頁上。

<div id="dialog-modal" title="Select a city to see the listings"> </div> 

========================

我的ActionResult看起來是這樣的。我確實將視圖設置爲局部視圖。

public ActionResult OpenDialogWindow() 
     { 
      return PartialView("DialogView"); 
     } 

========================

我的看法是這樣的。

@using TheSGroup_Web.ViewModels 
@model CitiesViewModel 

    <p>this is the content. 
    </p> 
+1

採取這裏一看,它已經回答:http://stackoverflow.com/questions/4802378/loading-a-partial-view-in-jquery-dialog – christiandev 2013-04-04 20:12:15

+0

如果你的JavaScript是在一個單獨的文件I不會期望'$(this).load(「@ Url.Action(\」OpenDialogWindow \「,\」Home \「)」)'給你一個合適的Url。 – Jasen 2013-04-04 21:23:17

+0

我的代碼實際上是來自那個例子,但它不適合我。我會將代碼從「this」更改爲我的名字,看看這是否會有所作爲。 – NNassar 2013-04-04 22:17:06

回答

10

我不確定關於MVC 2或3,但在MVC 4這是我如何得到它的工作。

$(document).ready(function() { 
    $('#dialog-modal').dialog({ 
     autoOpen: false, 
     modal: true, 
     open: function (event, ui) { 
      //alert("test"); 
      $(this).load("/Controller/Action"); 
     } 
    }); 
}); 

function OpenDialog() { 
    $('#dialog-modal').dialog('open'); 
} 
0

你總是可以讓一個Ajax請求你的局部視圖,檢查狀態碼,櫃面東西欣喜若狂了,你需要做別的事情,和響應數據存儲在一個變量。如果狀態代碼是200(OK),那麼在open:方法中加載對話框中的變量,否則,做一些很酷的事情......我不知道我頭頂的確切代碼, t凝灰岩我不認爲...

+0

你能舉一個這個ajax電話的例子嗎? – NNassar 2013-04-06 00:47:34

相關問題