`
d2hellen
  • 浏览: 105521 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

使用MvcHtmlString类输出不经过编码的HTML字符串

 
阅读更多
博客的文章存在数据库中时,存放的不仅仅只是文章内容,还有对文章进行格式化的HTML标签。

当我们使用ASP.NET MVC3开发一个个人博客时,我们必须将这些内容从数据库中读取出来,然后输出的屏幕上。



一开始我很天真,直接用了下面的代码:
@post.Content

结果一运行,我知道自己悲剧鸟!!!

这不是在坑爹么!我要的不是这个啊!!!神马<h3>啊,神马<p>啊,你们出来干什么!!!!

我知道,这一切都是因为输出的时候数据被编码了。好!我试,我试,我各种试,我要找到不进行编码的输出方法!

半个小时后,我终于向谷歌大帝投降。于是,我认识了MvcHtmlString类。只要这样这样就OK 了!

其实,这篇文章你只要看这里就好了
 @MvcHtmlString.Create(post.Content) 

结束,就这么简单,其他都是废话

恩。结果对了,虽然丑了点,那是因为我还没加CSS,这篇文章也是胡乱复制的测试文章。

查了跟多的资料以后我找到了其他的解决方法。
 @Html.Raw(post.Content) 

这段的代码的输出结果和上面的一样。
分享到:
评论

相关推荐

    ASP.NET Razor模板引擎中输出Html的两种方式

    类似,但是使用MvcHtmlString类的优势在于它提供了一个更清晰的信号,表明该字符串是安全的,不应该进行编码。创建MvcHtmlString对象非常简单,只需使用new关键字构造即可。使用MvcHtmlString的另一个好处是它提供了...

    TagDecorator:允许使用基于TagBuilder类(.NET)的级联标记字符串创建

    允许使用基于TagBuilder类(.NET)的级联标记字符串创建。 出于某种目的,需要通过代码创建html标签,并且此过程几乎没有问题(IMHO)。 创建过程的通用过程是创建TagBuilder实例并逐步更改其参数。 新解决方案: ...

    @Html的用法

    如果方法返回void或者执行某些动作而不返回字符串(比如Html.RenderPartial()),则直接使用 。 HtmlHelper提供的这些方法大大简化了在*** MVC中生成复杂HTML元素的工作,并且保持了代码的可读性和可维护性。开发者...

    Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法

    方法用于将一个部分视图(partial view)渲染为一个字符串(MvcHtmlString)。该方法通常用于在主视图中嵌入其他小型或复用性较高的视图片段。 - **使用方式**: ```csharp @Html.Partial("ViewName") ``` - **...

    asp.net mvc @html用法

    如果方法返回的是 `MvcHtmlString` 类型,则通常需要使用等号 (`=`) 来输出结果,因为这表明该方法的输出可以直接插入到页面中,而不会被转义。例如: ```csharp &lt;%= Html.ActionLink("链接文本", "ActionName", ...

    MVC默认路由实现分页(PagerExtend.dll下载)

    此扩展方法会根据传入的分页参数构建分页链接,并返回MvcHtmlString类型的HTML标记字符串,以便直接在MVC视图中渲染。 5. 分页扩展方法PageExtend的实现细节:该方法首先验证分页参数,如果参数不合法(如PageSize...

    Asp.net生成html文件

    要将生成的HTML保存为文件,可以使用`System.IO`命名空间中的类。例如,你可以创建一个`FileStream`,然后将`Response.OutputStream`的内容复制到文件中。记得要在生成HTML后关闭流,以确保数据完整写入。 6. **...

    Asp.net Mvc 实用技巧

    对于输出,若需要直接输出HTML代码而不是其编码形式,可以使用`MvcHtmlString`对象来确保HTML被正确渲染。例如,假设`article.Content`包含HTML代码: ```razor @Html.Raw(article.Content) ``` 或者更安全的做法...

    MVC常用控件

    同时,需要注意的是,在调用`HtmlHelper`中的某些方法时,需要使用等号来输出结果,这是因为这些方法返回的是`MvcHtmlString`类型。掌握了这些基本技巧后,开发人员可以在ASP.NET MVC项目中更加高效地构建动态用户...

    我想在运行时使用ASP.NET MVC中的C#更改css类吗?

    - 如果需要在运行时创建全新的CSS规则,可以使用`Html.Style()`方法(来自某些第三方库如`MvcHtmlString.Create()`)或者在服务器端生成CSS字符串并注入到`&lt;head&gt;`标签内。 7. **性能考虑** - 虽然在服务器端处理...

    MVC3处理反复提交,HtmlHelper用法大全,拓展方法

    在ASP.NET MVC3框架中,开发人员经常遇到的一个问题是用户反复提交表单,这可能导致数据库中的数据不一致或冲突。为了防止这种情况,我们需要实施一种机制来处理反复提交的问题。此外,`HtmlHelper`是ASP.NET MVC...

    C# 封装HtmlHelper组件:BootstrapHelper

    在C#中,封装HtmlHelper组件是为了方便在ASP.NET MVC框架中生成HTML元素,特别是当开发者需要频繁使用特定样式或库,如Bootstrap时。BootstrapHelper是HtmlHelper的一个扩展,专门针对Bootstrap框架提供便利的HTML...

    Asp.net mvc blog 小程序源码

    10. **部署与配置**:完成开发后,MvcBlog需要部署到IIS服务器,并配置相应的应用程序池、数据库连接字符串以及错误处理策略。 以上就是基于Asp.NET MVC博客小程序源码的主要技术点。通过深入研究这个源码,开发者...

    通过扩展HtmlHelper的ASP.NET MVC日历

    可以使用`StringBuilder`来构建HTML字符串,然后返回一个`MvcHtmlString`实例。 这个过程包括创建表格(`&lt;table&gt;`)结构,表头(`&lt;thead&gt;`)包含星期,表体(`&lt;tbody&gt;`)包含日期。对于每个日期,可以设置样式来...

    ASP.NET MVC HtmlHelper如何扩展

    既然是静态类,那么其所有的方法必然都是静态方法,例如:public static MvcHtmlString CheckBox(); (3)、this关键字 可以从方法名定义中看出,第一个参数都是this HtmlHelper htmlHelper,代表对HtmlHelper类的...

    FckEditor在.net中的使用及配置

    public static MvcHtmlString FCKEditor(this HtmlHelper helper, string name, string value, int width = 800, int height = 300) { // 创建编辑器代码略... } } ``` 然后在视图中调用: ```html @...

    HtmlHelpers:MVC HTML Helper呈现GOV.UK样式的控件

    本篇将深入探讨如何利用C#语言创建和使用HtmlHelpers来呈现GOV.UK样式的控件。 GOV.UK是一个英国政府官方网站的设计标准,它提供了一套清晰、一致的界面元素,旨在提高用户体验和可用性。为了在MVC应用中实现这些...

    如何在MVC3剃须刀中使用Inbuld控件

    1. 尽量使用辅助方法,它们可以自动处理HTML编码,防止XSS攻击。 2. 结合使用模型绑定和验证,以提高代码的可读性和可维护性。 3. 自定义辅助方法来封装复杂的HTML生成逻辑,保持视图的整洁。 总结,理解并熟练运用...

Global site tag (gtag.js) - Google Analytics