2010-12-03 2 views
0

я нашел статью о removing whitespace из моей разметки в ASP.NET MVC, однако, когда я использую конвертер кода, функция «» не правильно конвертированыКак бы вы преобразовали это в действительный VB.NET?

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; 
        }); 

      } 

    } 

Это то, что получает генерируется код Telerik преобразователь,

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 

Однако Function(s) Do недействителен. Я не знаю, как передать функцию в качестве параметра в методе.

ответ

3

Вы должны использовать делегат для этого в VB.NET this и this должны помочь вам.

Смежные вопросы