为甚 html 显示为源码,显示字符串作为美化HTML源代码

本文介绍了一种在ASP.NET MVC应用中通过按钮触发显示当前页面HTML源码的方法。作者希望用户能查看到格式良好且易于阅读的HTML源码,经过多次尝试,最终采用JavaScript处理innerHTML的方式实现了需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在开发一个ASP.NET MVC Web应用程序。

在一个页面上,我有一个字符串,如下所示:

This is some text !

对于预览模式,我使用Html.Raw(Model.MyText),文本显示为呈现的HTML:

此是一些文字!

我现在想添加一个按钮,以允许用户查看此文本的实际来源。我希望按钮能够打开一个显示HTML文本的新选项卡,格式化方式可读,并有正确的换行符和缩进。

想法1:

根据我发现here的想法,我的第一个尝试是尝试打开网址的view-source模式,其链接类似于以下内容:

View source

这将使文本完全呈现我想要呈现的内容:

Y0o7e.png

但是,自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的想法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值