在新窗口中显示视图
Display View in New Window
我开发了一个ASP.NET MVC应用程序,它将根据用户输入运行几个预筛选函数。
计划是从现有的HTML/JavaScript应用程序中调用这个新的mvc应用程序。我想在调用应用程序之外的新浏览器窗口中显示控制器的视图。
我的AJAX调用看起来像这个
$.support.cors = true;
$.ajax( {
url: "http://mvc_url/prescreen",
data: jsonObject,
type: "POST",
processData: false,
dataType: 'html',
contentType: "application/json; charset=utf-8",
timeout: 60000,
//dataType: "json",
success: function ( msg )
{
...on success msg = html rendered from view...
},
error: function ( XMLHttpRequest, textStatus, errorThrown )
{
...error handling...
}
} );
我已经测试过了,在成功的时候,msg确实包含了视图中完全呈现的HTML。我的问题是如何使用渲染的HTML打开一个新窗口?。
我试过以下几种:
var newWindow = window.open( "", "", "" );
newWindow.document.write( msg );
这似乎奏效了。有点。新窗口打开并显示html,但我的样式表和视图中包含的javascript文件都不见了。那么,如果使用上面的window.open代码是正确的,那么我该如何删除必要的样式表和javascript文件呢?
编辑
利用AndyJ提供的建议,我修改了我的视图,以包含基于我的基本应用程序的相对路径。这是我的MVC 返回的标记
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Offer</title>
<link href="../css/site.css", type="text/css" rel="stylesheet" />
</head>
<body>
<div class="container body-content">
... Page Content ...
<script src="/baseapp/Scripts/jquery-1.8.2.js" type="text/javascript"></script>
<script src="/baseapp/js/someInclude.js" type="text/javascript"></script>
<script type="text/javascript">
InitializeForm();
</script>
InitializeForm方法是在someInclude.js.中定义的
基于以上内容,并假设文件位于路径中,所有内容都应该连接起来,对吗?那么,我还可能做错了什么呢?
除了Andy J提供的帮助(谢谢),我还发现当在新窗口中呈现响应时,JQuery库正在加载AFTER我的初始化脚本。为了避免这种情况,我只需将事件处理程序添加到控件的内联属性中。
这可能是一个变通办法,但目前它似乎对我有效。
如果您在AJAX请求中返回原始HTML,您可能需要在那里添加CSS和JS引用。您并没有真正返回通常具有包含引用的布局的视图。
相关文章:
- [AngularJS][UI Router]在视图中显示视图
- 可以't无法显示视图/集合
- 在 Angular JS 中显示视图上的数组
- 如何在主干中显示视图.js(路由器.js中不显示警报)
- Angular 在加载其他视图之前不显示视图
- 如何将自动完成搜索框重定向到显示视图
- 使用 Knockoutjs 显示视图模型中数据的更好方法
- Angular UI路由器未显示视图
- 无法在“角度”中显示视图
- 在新窗口中显示视图
- 显示视图时JavaScripts不工作-Rails 4 Ruby 2
- 如何在单击按钮时显示视图
- AngularJS$routeProvider未显示视图
- 将创建视图嵌套在Backbone.js中的显示视图中
- 烬不显示视图
- MVC应用程序不显示视图中的数据
- 主干路由器不能显示视图
- 流星js |通过帮助器显示视图中的Json
- 如何在HTML或css中禁用选中的突出显示视图
- 我如何嵌入街景图像,使其显示视图从街道(而不是从建筑物内部)