加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC 3 – 隔离HTML.Raw输出

发布时间:2020-12-16 09:39:37 所属栏目:asp.Net 来源:网络整理
导读:我正在开发一个系统,用户可以在系统中向系统提交 HTML,然后“预览”生成的页面.用户提交的HTML通过在视图中调用HTML.Raw提供给页面,其中它显示为包含其他数据的表的一部分.在一个天真的实现中,它显示如下: ... td div@Html.Raw(UserEnteredHTMLIsFetchedHer
我正在开发一个系统,用户可以在系统中向系统提交 HTML,然后“预览”生成的页面.用户提交的HTML通过在视图中调用HTML.Raw提供给页面,其中它显示为包含其他数据的表的一部分.在一个天真的实现中,它显示如下:

...
    <td>
        <div>@Html.Raw(UserEnteredHTMLIsFetchedHere)</div>
    </td>
...

我遇到的问题是用户输入的HTML不保证没有错误(事实上远非它).如果用户在HTML中输入未关闭的div标签然后进行预览,则Html.Raw返回的未关闭标签将在Html.Raw调用之外的/ div上关闭,并在整个页面上创建不正确的嵌套.

我正在寻找一种方法来隔离Html.Raw的输出,以便未封闭的标签不会干扰页面的其余部分.

我试图使用iframe标签来实现这一点(将src设置为编码的HTML),但它对CSS不起作用.我希望页面的现有CSS尽可能保留在隔离的HTML中.

我不确定这是否是Html.Raw甚至应该被使用的方式,但这是我正在修改的实现,而不是创建,我希望保留尽可能多的原始实现.

解决方法

显示用户输入的HTML而不影响您的视图的最佳选择是使用IFrame.你可以手动 set the content of an IFrame using Javascript.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读