50

Is there an equivalent for MvcHtmlString in ASP.NET 5 ? Otherwise, how can we render HTML output from my custom HTMLHelper method properly ?

Christophe Gigax
  • 3,211
  • 4
  • 25
  • 37

2 Answers2

69

There is no longer need for MvcHtmlString (which added on top of HtmlString for compatibility reasons) so you can simply use Microsoft.AspNet.Mvc.Rendering.HtmlString.

As you can easily notice, the ViewComponents and Helpers of Asp.Net 5 are also using (by returning) the same HtmlString to the views.

Update (for ASP.NET Core 3.1):

You need to use Microsoft.AspNetCore.Html.HtmlString instead.

haim770
  • 48,394
  • 7
  • 105
  • 133
45

Asp .Net Core (v.5) replaced MvcHtmlString for a new HtmlString type. Don't confuse this with the HtmlString type that is a part of the System.Web namespace introduced in .NET 4.0 (MvcHtmlString inherits from this type).

NOTE: After April 28, 2016 the HtmlString type was moved to the Microsoft.AspNetCore.Html.Abstractions package. Remember to include this in your project.json in the dependencies node.

Additionally, you need to declare the using directive

using Microsoft.AspNetCore.Html;

or declare it by its fully qualified name:

Microsoft.AspNetCore.Html.HtmlString

If you want more information on the HtmlString type look at the HtmlAbstractions package source code located here

Noctis
  • 11,507
  • 3
  • 43
  • 82
IsakBosman
  • 1,453
  • 12
  • 19
  • 4
    what is the equivalent part of MVCHtmlString.Create() in Core 3.1 – Karthic G Nov 05 '20 at 14:19
  • For ASP.NET Core 5, sometimes using/returning `IHtmlContent` (which is implemented by `HtmlString`) instead of `HtmlString` could be sufficient. – Uwe Keim Aug 18 '21 at 16:09