首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC 3-隔离器HTML.Raw输出

ASP.NET MVC 3-隔离器HTML.Raw输出
EN

Stack Overflow用户
提问于 2013-09-20 17:06:21
回答 3查看 1.2K关注 0票数 4

我正在开发一个系统,在这个系统中用户可以向系统提交HTML,然后“预览”生成的页面。用户提交的HTML是通过对视图中的HTML.Raw的调用给页面的,在该视图中,它作为表的一部分与其他数据一起显示。在一个简单的实现中,它的显示方式如下:

代码语言:javascript
复制
...
    <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的方式,但这是一个我正在修改而不是创建的实现,我希望尽可能多地保留原始实现。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-20 17:26:46

在不影响视图的情况下显示用户输入的HTML的最佳选择是使用IFrame。您可以手动使用Javascript设置IFrame的内容

票数 0
EN

Stack Overflow用户

发布于 2013-09-20 19:09:49

重要的是要理解的是,这绝不是一个好主意,除非您正在创建一个CMS系统(请参阅我在这里的答案,https://stackoverflow.com/a/4146470/467198 )

是的,CSS不会在iframe中工作,但是您可以像在父页面中那样将相同的CSS注入到iframe中。但是很明显,父页面布局不会遵循iframe的内容(例如,如果iframe中有一个大div,父页面不会使iframe更大)

票数 1
EN

Stack Overflow用户

发布于 2013-09-20 17:47:25

查看html属性可满足。它确保无论谁修改应用此属性的div的内容,都不必处理html,但是将生成html。

它还允许格式化。例如,您可以按Ctrl+B并突出显示内容。或者,您可以键入MS Word中的内容,按需要格式化它们,并将其复制到div中。

这可能对你有用,也可能不适用。当我知道将要输入内容的人需要格式化内容,但对html一无所知时,我发现这种情况非常方便。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18922193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档