2014-01-07 27 views
2

從主控制器視圖我們加載這樣的局部視圖: @ Html.Partial(「MapPartial」,模型) 阿賈克斯beginform在JQuery中沒有工作在PartialView MVC

裏面的局部視圖我想呈現地圖。目前,我有一個帶有提交按鈕的Ajax beginform,它調用控制器動作,onSuccess在JavaScript函數中加載渲染地圖的數據,如下所示。這工作正常。

<div id="map"></div> 

@using (Ajax.BeginForm("GetData", "Directory", new AjaxOptions { OnSuccess = "mapInit" })) 
{ 
    <button class="btn" type="submit">update map</button> 
} 

更新:好,我明白控制器主視圖被加載時jQuery代碼/函數首先被加載但如何可以被選擇局部視圖時自動地圖可以被呈現。我不介意使用加載/進度條,可能會延遲一秒來渲染地圖。請幫忙。

+0

爲什麼隱藏和顯示相同的div $(「。ContentReplacable」)。hide(); $(「#MapPartial」)。show();.是阿賈克斯稱爲行動打? –

回答

0

我不知道什麼ü試圖做的,但只是嘗試這個帖子功能

$(document).ready(function() { 
    $.post('Directory/GetData',{},function(data){    
      mapInit(data); 
     },"json"); 
    function mapInit(data) { 
    $('#MapParial').html(data); 
    } 
}); 
+0

Dinesh我正在嘗試在部分視圖加載時呈現地圖。我試過上面的代碼,數據很好,但地圖不是渲染。上面的代碼在控制器加載時運行。但是我需要它在部分視圖加載時運行。 – user2906420

+0

你需要運行局部視圖 – Dinesh

+0

我編輯代碼試試吧 – Dinesh

1

嘗試使用此谷歌地圖觸發。

google.maps.event.trigger(map,'resize');

其中 「地圖」 是你的谷歌地圖對象

$(document).ready(function() { 
$.post('Directory/GetData',{},function(data){    
     mapInit(data); 
    },"json"); 
function mapInit(data) { 
$('#MapParial').html(data); 
google.maps.event.trigger(map, 'resize'); 
} 

});