ASP.NET MVC5:实时加载的局部视图不加载动态Javascript引用

时间:2015-04-23 12:53:15

标签: javascript asp.net ajax asp.net-mvc asp.net-mvc-5

我的目标是刷新包含交互式世界地图的部分视图。 我有一个控制器动作

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

将地图数据返回为JavaScriptResult

我使用

在我的部分视图“MapSite”中调用此Javascript
<script src="/JS/DynMap/@ViewBag.GameRoomID"></script>

部分视图“MapSite”

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是静态的测试),Partial View没有DynMap Javascript。

这是一个错误吗?是不是可以通过这种方式加载外部Javascript“直播”? 它甚至命中Controller DynMap方法内的断点,但是映射为空,因为缺少DynMap值。

1 个答案:

答案 0 :(得分:1)

解决方案

我发现我的方法工作得非常好! 在我的特定情况下,问题是在html页面本身之后加载了Javascript内容。所以Javascript中的window.onload()无法执行,之后我只能手动执行。