问题描述
|
我有一个实例,不是由我自己选择,而是在浏览器中有一个辅助弹出窗口。
将表单提交回服务器端MVC方法后,该方法完成后,我希望它关闭调用它的浏览器窗口。
除了返回\“ onReady \”中带有javascript的视图以关闭视图之外,还有其他方法可以做到这一点吗?
解决方法
不,没有使用javascript(或返回将执行此javascript的视图)从服务器上实现此目标的方法。
, 将此视为您的观点:
@if (ViewBag.ShouldClose) {
<script type=\"text/javascript\">
window.close();
</script>
}
然后,如果设置了ShouldClose属性,它将运行该脚本并关闭窗口。
// in your controller
ViewBag.ShouldClose = true;
注意:我是从编辑器执行此操作的,因此您可能必须调整视图语法以使其正确解析。
, 我有同样的问题,@ Michael Kennedy的答案正是我所需要的!由于我使用的是MVC 2,因此必须更改语法。我在这里把它作为其他人的参考。
在视图中:
<% if ((bool)ViewData[\"ShouldClose\"]) { %>
<script type=\"text/javascript\">
window.close();
</script>
<% } %>
在控制器中:
ViewData[\"ShouldClose\"] = true;
不要忘记在每次调用视图时都设置ViewData,否则您将获得NullReference来强制转换为布尔值。