asp.net-mvc – MvcHtmlString.Create()和Html.Raw()之间的区别

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – MvcHtmlString.Create()和Html.Raw()之间的区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个MVC项目。使用MVC 4和剃刀。在构建一些页面后,我在想:有什么区别?
  1. MvcHtmlString.Create()

  1. Html.Raw()

如果你能帮我在这里了解,那会很好的

提前致谢!

解决方法

这是一个很好的机会来看看ASP.NET( http://aspnetwebstack.codeplex.com)可用的​​源代码

看看HtmlHelper.cs,这是Html.Raw()的代码

  1. public IHtmlString Raw(string value)
  2. {
  3. return new HtmlString(value);
  4. }
  5.  
  6. public IHtmlString Raw(object value)
  7. {
  8. return new HtmlString(value == null ? null : value.ToString());
  9. }

这是MvcHtmlString类的代码

  1. namespace System.Web.Mvc
  2. {
  3. public sealed class MvcHtmlString : HtmlString
  4. {
  5. [SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes",Justification = "MvcHtmlString is immutable")]
  6. public static readonly MvcHtmlString Empty = Create(String.Empty);
  7.  
  8. private readonly string _value;
  9.  
  10. public MvcHtmlString(string value)
  11. : base(value ?? String.Empty)
  12. {
  13. _value = value ?? String.Empty;
  14. }
  15.  
  16. public static MvcHtmlString Create(string value)
  17. {
  18. return new MvcHtmlString(value);
  19. }
  20.  
  21. public static bool IsNullOrEmpty(MvcHtmlString value)
  22. {
  23. return (value == null || value._value.Length == 0);
  24. }
  25. }
  26. }

最显着的区别是Html.Raw()接受任何对象,而MvcHtmlString.Create()只接受字符串。此外,Html.Raw()返回一个接口,而Create方法返回一个MvcHtmlString对象。最后,创建处理为null。

猜你在找的asp.Net相关文章