使HTML显示为链接

使HTML显示为链接,html,css,asp.net,asp.net-mvc,Html,Css,Asp.net,Asp.net Mvc,我试图在站点上显示从一个用户到另一个用户的消息。消息用HTML保存在数据库中 为什么网站上会出现HTML,而不是将HTML转换为链接或换行符 代码如下: <div class="jumbotron"> <h4><u>Your Messages</u></h4> @foreach (var m in Model.User.MessagesUsers) { <p>@m.Message<

我试图在站点上显示从一个用户到另一个用户的消息。消息用HTML保存在数据库中

为什么网站上会出现HTML,而不是将HTML转换为链接或换行符

代码如下:

<div class="jumbotron">
    <h4><u>Your Messages</u></h4>
    @foreach (var m in Model.User.MessagesUsers)
    {
        <p>@m.Message</p>
    }
</div>

你的信息
@foreach(Model.User.MessagesUsers中的var m)
{
@m、 信息

}
看起来您正在使用ASP.NET MVC。出于安全原因,框架自动对输出进行HTML编码

您可以通过以下方式解决此问题:

@Html.Raw(m.Message)


请注意但是,这是规避安全的行为。确保您信任您的数据。跨站点脚本攻击就是这样发生的。您可能还想研究允许用户输入您有更多控制权的标记。

出于安全原因,它将转义所有html标记。您使用的是什么框架?请澄清您的具体问题或添加其他详细信息,以突出显示您所需要的内容。正如目前所写的,很难准确地说出你在问什么。请参阅页面以获得澄清此问题的帮助。这不是纯HTML和CSS。我使用的是Visual Studioline break或链接与HTML一起显示,而不是实际的链接或换行符。因此,如果不让自己面临安全风险,就没有办法解决此问题吗?@N.Sch:这取决于许多因素。如果您允许用户输入您将显示给他们或其他用户的数据,而不使用HTML编码,那么这对其他用户来说是一个安全风险。(即使是HTML编码,也可能存在风险。我不知道有没有风险,但这并不意味着没有风险。)如果您信任数据源,风险就会降低。但请记住,“信任”并不一定意味着“登录用户发布了它”。登录用户可能会做出恶意行为。最安全的方法是不允许用户输入HTML、允许标记(或类似标记)并动态将其转换为HTML,这样就安全了(针对XSS)
<p>@Html.Raw(m.Message)</p>