2015-04-23 67 views
0

我的目標是刷新包含交互式世界地圖的局部視圖。 我有一個控制器動作ASP.NET MVC5:實時加載的局部視圖不加載動態Javascript參考

public JavaScriptResult DynMap(int id, List<int> relevantCountries = null){}

返回的地圖數據作爲JavaScriptResult

我把此Javascript在我的部分視聽 「網站地圖」 與

<script src="/JS/DynMap/@ViewBag.GameRoomID"></script> 

局部視圖 「網站地圖」

public ActionResult MapSite(int id) 
{ 
    ViewBag.GameRoomID = id; 
    return PartialView("MapSite"); 
} 

被渲染成了我的主網頁是這樣的:

<td id="map"> 
    @{Html.RenderAction("MapSite", "JS");} 
</td> 

這工作得很好! 但是,如果我想在運行時(使用新值)再次呈現MapSite,如下所示:$('#map').load('/JS/MapSite/4')(4對於測試是靜態的),部分視圖不包含DynMap Javascript。

這是一個錯誤?是不是可能以這種方式加載外部Javascript「活」? 它甚至在控制器DynMap方法內點擊斷點,但映射爲空,因爲缺少DynMap值。

+0

你不能使用ajax並傳遞參數嗎? – jbutler483

+1

我在使用@ ajax.actionlinks時遇到類似問題,我發現在主頁面上引用所需的腳本並在成功/錯誤/完成時執行回調更容易。 – Jay

回答

1

解決方案

我發現我的方法工作得很好! 問題出在我的具體情況,Javascript內容被加載之後 html頁面本身。所以JavaScript中的window.onload()不能被執行,我只需要手動完成。