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

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

它将地图数据作为JavaScriptResult返回。

我在我的部分视图中将此Javascript称为“ MapSite”,

<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对于测试是静态的),则部分视图自带了DynMap Javascript。

这是错误吗?不可能以这种方式“实时”加载外部Javascript吗?
它甚至命中Controller DynMap方法内的断点,但由于缺少DynMap值,因此映射为空。

最佳答案



我发现我的方法工作得很好!
问题是在我特定的情况下,JavaScript内容是在html页面本身之后加载的。因此,无法执行Javascript中的window.onload(),之后我只需要手动执行即可。

10-06 02:44