I found an article on removing whitespace from my markup in ASP.NET MVC, however, when I use the code converter, the “function” is not properly converted
public class WhitespaceFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var request = filterContext.HttpContext.Request;
var response = filterContext.HttpContext.Response;
response.Filter = new WhiteSpaceFilter(response.Filter, s =>
{
s = Regex.Replace(s, @"\s+", " ");
s = Regex.Replace(s, @"\s*\n\s*", "\n");
s = Regex.Replace(s, @"\s*\>\s*\<\s*", "><");
s = Regex.Replace(s, @"<!--(.*?)-->", ""); //Remove comments
// single-line doctype must be preserved
var firstEndBracketPosition = s.IndexOf(">");
if (firstEndBracketPosition >= 0)
{
s = s.Remove(firstEndBracketPosition, 1);
s = s.Insert(firstEndBracketPosition, ">");
}
return s;
});
}
}
This is what gets generated by the Telerik code converter,
Public Overrides Sub OnActionExecuting(ByVal filterContext As ActionExecutingContext)
Dim request = filterContext.HttpContext.Request
Dim response = filterContext.HttpContext.Response
response.Filter = New WhiteSpaceFilter(response.Filter, Function(s) Do
s = Regex.Replace(s, "\s+", " ")
s = Regex.Replace(s, "\s*\n\s*", vbLf)
s = Regex.Replace(s, "\s*\>\s*\<\s*", "><")
s = Regex.Replace(s, "<!--(.*?)-->", "")
'Remove comments
' single-line doctype must be preserved
Dim firstEndBracketPosition = s.IndexOf(">")
If firstEndBracketPosition >= 0 Then
s = s.Remove(firstEndBracketPosition, 1)
s = s.Insert(firstEndBracketPosition, ">")
End If
Return s
End Function)
End Sub
However the Function(s) Do is invalid. I don’t know how to pass a function as a parameter in a method.
It is basically a lambda expression in c#. : http://msdn.microsoft.com/en-us/library/bb397687.aspx
You need to look at how to do the same in VB.net : http://msdn.microsoft.com/en-us/library/bb531253.aspx