111

HtmlString vs. MvcHtmlString

What are the differences bettween those two, or when to prefer one over the other?

Edit:

One thing to prefer MvcHtmlString over HtmlString is the extension method IsNullOrEmpty of MvcHtmlString.

Richard Ev
  • 51,030
  • 56
  • 187
  • 275
stacker
  • 14,121
  • 17
  • 44
  • 74

3 Answers3

119

HtmlString only exists in ASP.NET 4.

MvcHtmlString was a compatibility shim added to MVC 2 to support both .NET 3.5 and .NET 4. Now that MVC 3 is .NET 4 only, it's a fairly trivial subclass of HtmlString presumably for MVC 2->3 for source compatibility.

If you're ever going to drop back to MVC 2 it might make sense to use IHtmlString or var for values returned from MVC functions. Alternatively I think you can now just switch to HtmlString throughout.

Rup
  • 32,673
  • 9
  • 86
  • 107
20

HtmlString was only introduced in .Net 4.0.

In ASP.Net 3.5 MVC 2.0, you should use MvcHtmlString.
In .Net 4.0, you should use HtmlString. (which is simpler)

SLaks
  • 837,282
  • 173
  • 1,862
  • 1,933
2

MvcHtmlString is used to indicate when a string should not be re-encoded.

See What is an MvcHtmlString and when should I use it?

and

What does <%: %> do in ASP.NET (MVC2)?

Community
  • 1
  • 1
Rob
  • 5,415
  • 1
  • 23
  • 26