我正在开发一个ASP.NET MVC Web应用程序。
在一个页面上,我有一个字符串,如下所示:
This is some text !
对于预览模式,我使用Html.Raw(Model.MyText),文本显示为呈现的HTML:
此是一些文字!
我现在想添加一个按钮,以允许用户查看此文本的实际来源。我希望按钮能够打开一个显示HTML文本的新选项卡,格式化方式可读,并有正确的换行符和缩进。
想法1:
根据我发现here的想法,我的第一个尝试是尝试打开网址的view-source模式,其链接类似于以下内容:
View source
这将使文本完全呈现我想要呈现的内容:
但是,自this Bugzilla fix起,拒绝访问view-source个网址。
想法2:
我的下一次尝试是获取innerHTML,并将该文本写入新窗口:
function showSource(){
source += document.getElementById('myDivID').innerHTML;
source = source.replace(//g, ">");
source = "
" + source + "";
sourceWindow = window.open('', '_blank');
sourceWindow.document.write(source);
sourceWindow.document.close();
if(window.focus) sourceWindow.focus();
}
该方法成功地将文本传递给新选项卡,但是,代码显示在一个无法读取的未格式化的行中:
This is some text !
想法3:
我还想过删除Html.Raw(),但是这个想法也会以不可读的格式呈现代码:
This is some text !
如何在新标签页中打开Model.MyText字符串并将其渲染为美化HTML?
理想情况下,如果只使用HTML或JavaScript可以实现这一点会很棒,但我也很乐意接受需要调用MVC ActionResult的想法。