How to Minify HTML using WebMarkupMin in ASP.NET MVC

This post shows you how to minify HTML at runtime in ASP.NET MVC to make your web page load faster

To do that you need to install WebMarkupMin.AspNet4.Mvc library from Nuget Package Manager or you can download it directly from https://github.com/Taritsyn/WebMarkupMin/wiki/WebMarkupMin:-ASP.NET-4.X-MVC

WebMarkupMin.AspNet4.Mvc is a library allows you to minify HTML in ASP.NET MVC or ASP.NET MVC Core

webmarkupmin

Open FilterConfig class, then add the config to minify HTML and XML content as below

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new CompressContentAttribute());
    filters.Add(new MinifyHtmlAttribute());
    filters.Add(new MinifyXmlAttribute());
}

You can add atributtes to minify HTML for each Action that you want to minify

[CompressContent]
[MinifyHtml]
public ActionResult Index()
{
    return View();
}

[CompressContent]
[MinifyXhtml]
public ActionResult Contact()
{
    return View();
}

You can also add atributtes to Controller instead of Action

[CompressContent]
[MinifyHtml]
[MinifyXml]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Contact()
    {
        return View();
    }
}

Run your project->Right click on your web page ->Inspect->Network tab. You can see a reduction in the number of data transfers