Introduction
I use partial views a lot in my razor views. And I do care about optimizing my HTML. So I created an extension to HTML-optimize my partial views and thought I'd share it with you.
Using the Code
Use it just as you use @Html.Partial()
.
@Html.MinifiedPartial("MyPartialView")
The Extension Method
public static class MvcExtensions
{
private static readonly Regex RegexBetweenTags = new Regex(@">(?! )\s+", RegexOptions.Compiled);
private static readonly Regex RegexLineBreaks =
new Regex(@"([\n\s])+?(?<= {2,})<", RegexOptions.Compiled);
public static MvcHtmlString MinifiedPartial(this HtmlHelper htmlHelper, string partialViewName)
{
var partialViewContent = htmlHelper.Partial(partialViewName).ToHtmlString();
partialViewContent = RegexBetweenTags.Replace(partialViewContent, ">");
partialViewContent = RegexLineBreaks.Replace(partialViewContent, "<");
return new MvcHtmlString(partialViewContent);
}
public static MvcHtmlString MinifiedPartial
(this HtmlHelper htmlHelper, string partialViewName, object model)
{
var partialViewContent = htmlHelper.Partial(partialViewName, model).ToHtmlString();
partialViewContent = RegexBetweenTags.Replace(partialViewContent, ">");
partialViewContent = RegexLineBreaks.Replace(partialViewContent, "<");
return new MvcHtmlString(partialViewContent);
}
}
Microsoft Certified Solutions Developer (MCSD)
Personal website:
stian.net
My projects:
CRM1.no - A free to use norwegian crm software
Fakturax - A free to use norwegian invoice software
Timeføring.no - A free to use norwegian timereg software
MittUtlegg - A free to use norwegian software for receipts
SupportWeb - A free to use norwegian software customersupport