我的目标是刷新包含交互式世界地图的局部视图。
我有一个控制器动作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(),之后我只需要手动执行即可。