c# - 不使用 @Html.Raw 从 ToString 输出 HTML

标签 c# asp.net asp.net-mvc asp.net-mvc-3 razor

我有一个自定义集合,其中包含供我查看的消息。我已经覆盖了 ToString 方法,以便它返回有效的 HTML。这使得它可以在 View 中轻松引用。

@Model.Messages

不幸的是,HTML 正在被编码。

我知道对于属性你可以返回一个 IHtmlString 但这需要一个包装器属性(类似于 @Model.Messages.Render)我也知道在 View 我可以使用 @Html.Raw 来阻止编码,但是没有办法通知 View ToString 方法返回正确的 HTML 字符串。也许通过数据注释?

我觉得好像我不得不在我的 View 中添加额外的困惑,我宁愿将其封装在我的模型中。

最佳答案

使用 HttpUtility.HtmlDecode() 怎么样?

@HttpUtility.HtmlDecode(Model.Messages)

关于c# - 不使用 @Html.Raw 从 ToString 输出 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22630718/

相关文章:

c# - “UTF8”不是受支持的编码名称

c# - Moq第一次和第二次返回不同的值

c# - 无法评估表达式,因为代码已优化或 native 框架位于调用堆栈的顶部

asp.net-mvc - 如何在 Winforms 中使用数据注释验证器?

javascript - 如何建立 Facebook 风格的 Ajax 站点

c# - MVC 是否在 ajax GET 和 POST 操作中以不同方式解析 DateTime 对象?

c# - 当没有文件夹命名空间时,在 MailKit 中打开邮件文件夹

c# - 动态 SQL 查询导致 "Unclosed quotation mark"错误

javascript - 在 find 的结果集上使用 jquery find

ASP.NET : Show progress information while saving data to DB