Каковы различия между этими двумя, или когда они предпочитают друг друга?
Edit:
Одна вещь, которая предпочитает MvcHtmlString над HtmlString, - это метод расширения IsNullOrEmpty of MvcHtmlString.
Ответ 1
HtmlString существует только в ASP.NET 4.
MvcHtmlString был совместимым дополнением к MVC 2 для поддержки как .NET 3.5, так и .NET 4. Теперь, когда MVC 3 является только .NET 4, он довольно тривиальный подкласс HtmlString предположительно для MVC 2- > 3 для совместимости источников.
Если вы когда-нибудь захотите вернуться к MVC 2, может иметь смысл использовать IHtmlString или var для значений, возвращаемых из функций MVC. В качестве альтернативы, я думаю, теперь вы можете просто переключиться на HtmlString.
Ответ 2
HtmlString был введен только в .Net 4.0.
В ASP.Net 3.5 MVC 2.0 вы должны использовать MvcHtmlString.
В .Net 4.0 вы должны использовать HtmlString. (что проще)
Ответ 3
MvcHtmlString используется, чтобы указать, когда строка не должна быть перекодирована.