HY,
在我的应用程序中,我将字符串存储为html文件的内容。
如何在浏览器中预览此内容(假设它已从原始内容修改),而不必在本地将其保存到磁盘。
预览位于另一个标签页或窗口中。
有没有人有任何想法?
提前致谢。
杰夫
答案 0 :(得分:2)
将内容保存到Session变量并创建一个虚拟页面,并从Page Load事件中的Session变量加载到内容。
创建临时内容的位置
Session["TempPage"] = Content;
然后让ShowTempPage.aspx为空,其中包含Page Load事件后面的代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Session["TempPage"]);
}
这样的东西可以起作用..
更新: 要在新窗口中打开临时页面,请在主页面上创建如下链接:
<a href="http://localhost/ShowTempPage.aspx" target="_blank">View temp Page</a>
答案 1 :(得分:1)
Creating "in memory" Files
How Make A Text File In Memory And Write Something On It And Open NotePad In Client And Open That File In It?
答案 2 :(得分:1)
创建HTTP处理程序,并在IHttpHandler
的实现中从内存中提供HTML内容。使用链接上的正确target
属性强制客户端上的新选项卡/窗口。
(这是基于问题上的asp.net
标记:您正在编写一个网站。如果这是一个本地应用程序(WinForms或WPF),那么您可以嵌入浏览器控件并设置其{{3 HTML文本的方法。)
答案 3 :(得分:1)
我会使用iframe和一段javascript。使用javascript和document.write填充iframe窗口。
答案 4 :(得分:1)
问题主要是如何打开一个新窗口?这取决于提示操作的内容。如果是超链接,只需添加target="_blank"
即可。如果没有,或者你想要更多地控制窗口,那么使用javascript。
显示内容而不将其保存到磁盘是服务器端代码的本质,如果不这样做,就无法拥有网站。
回复于(myString的)
答案 5 :(得分:0)
这是一个Javascript / JQuery解决方案:
<!DOCTYPE html>
<html>
<head>
<title>Open Custom HTML Page Without Saving</title>
<meta charset='utf-8'>
<meta name='viewport' content='initial-scale=1.0'>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.min.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('.preview-site').on('click', function(){
window.open('javascript:document.write("'+ $('.workflow').val() +'")', 'Opened Page', 'width=660, height=440');
return false;
});
});
</script>
</head>
<body>
<a class="preview-site" title="Preview your workflow" href="javascript:void(0)">Preview your workflow</a><br/>
<textarea class="workflow"><!DOCTYPE html>
<html>
<head>
<title>Hello world!</title>
<meta charset='utf-8'>
<meta name='viewport' content='initial-scale=1.0'>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html></textarea>
</body>
</html>