views:

262

answers:

3

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.

+1  A: 

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
@SLaks look in asp.net-mvc-3.
stacker
I'm looking in MVC 2.0.
SLaks
The question is about asp.net-4 and MVC-3.
stacker
+6  A: 

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
A: 

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

See http://stackoverflow.com/questions/2293357/what-is-an-mvchtmlstring-and-when-should-i-use-it

and

http://stackoverflow.com/questions/3331393/what-does-do-in-asp-net-mvc2/3331408#3331408

Rob
So's HtmlString. Or anything that derives from IHtmlString.
Rup