我创建一个MVC项目。 使用MVC 4和剃刀。 建设一些网页后,我在想:是什么区别
MvcHtmlString.Create()
和
Html.Raw()
将是很好,如果你能帮助我在这里要理解这一点。
提前致谢!
我创建一个MVC项目。 使用MVC 4和剃刀。 建设一些网页后,我在想:是什么区别
MvcHtmlString.Create()
和
Html.Raw()
将是很好,如果你能帮助我在这里要理解这一点。
提前致谢!
这是为了看看源代码,这是提供给我们用于ASP.NET(一个极好的机会http://aspnetwebstack.codeplex.com )。
看着HtmlHelper.cs,这是代码Html.Raw()
public IHtmlString Raw(string value)
{
return new HtmlString(value);
}
public IHtmlString Raw(object value)
{
return new HtmlString(value == null ? null : value.ToString());
}
这是对MvcHtmlString类的代码:
namespace System.Web.Mvc
{
public sealed class MvcHtmlString : HtmlString
{
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "MvcHtmlString is immutable")]
public static readonly MvcHtmlString Empty = Create(String.Empty);
private readonly string _value;
public MvcHtmlString(string value)
: base(value ?? String.Empty)
{
_value = value ?? String.Empty;
}
public static MvcHtmlString Create(string value)
{
return new MvcHtmlString(value);
}
public static bool IsNullOrEmpty(MvcHtmlString value)
{
return (value == null || value._value.Length == 0);
}
}
}
最显著的区别在于Html.Raw()
接受任何对象,而MvcHtmlString.Create()
只接受字符串。 另外, Html.Raw()
返回一个接口,而创建方法返回一个MvcHtmlString对象。 最后,不同的创建空交易。
没有实际的区别。
该MvcHtmlString.Create
创建的实例MvcHtmlString
,而Html.Raw
方法创建的实例HtmlString
,但MvcHtmlString
刚刚从继承HtmlString
,所以他们的工作是相同的。