Как удалить пробелы из ASP.NET MVC# выход?

Как удалить все пробелы из ASP.NET выход MVC 3?


обновление: Я знаю, как я могу использовать string.Замените метод или регулярные выражения, чтобы удалить пробелы из строки; но я не знаю, как я могу использовать тему в ASP.NET MVC 3 для удаления всех пробелов из строки вывода. Например, когда вызывается метод" OnResultExecuted " и результат готов к отправке в браузер конечного пользователя, я хочу получить результат - в виде строки или потока объекта; не разницу между ними, и делать свою работу на нем. Благодарить всех. :)

4 ответов


Я нашел свой ответ и создал окончательное решение, подобное этому:

сначала создайте базовый класс, чтобы заставить представления наследовать от этого, как показано ниже, и переопределить некоторые методы:

  public abstract class KavandViewPage < TModel > : System.Web.Mvc.WebViewPage < TModel > {

      public override void Write(object value) {
          if (value != null) {
              var html = value.ToString();
              html = REGEX_TAGS.Replace(html, "> <");
              html = REGEX_ALL.Replace(html, " ");
              if (value is MvcHtmlString) value = new MvcHtmlString(html);
              else value = html;
      }
      base.Write(value);
  }

  public override void WriteLiteral(object value) {
      if (value != null) {
          var html = value.ToString();
          html = REGEX_TAGS.Replace(html, "> <");
          html = REGEX_ALL.Replace(html, " ");
          if (value is MvcHtmlString) value = new MvcHtmlString(html);
          else value = html;
      }
      base.WriteLiteral(value);
  }

  private static readonly Regex REGEX_TAGS = new Regex(@">\s+<", RegexOptions.Compiled);
  private static readonly Regex REGEX_ALL = new Regex(@"\s+|\t\s+|\n\s+|\r\s+", RegexOptions.Compiled);

  }

затем мы должны внести некоторые изменения в web.config файл, расположенный в Viewsподробнее о.

    <system.web.webPages.razor>
      <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <pages pageBaseType="Kavand.Web.Mvc.KavandViewPage"> <!-- pay attention to here -->
        <namespaces>
          <add namespace="System.Web.Mvc" />
          ....
        </namespaces>
      </pages>
    </system.web.webPages.razor>

можно использовать строку.Заменить способ:

string input = "This is  text with   ";
string result = input.Replace(" ", "");

или использовать regex, если вы хотите удалить также вкладки и новые строки:

string input = "This is   text with   far  too   much \t  " + Environment.NewLine +
               "whitespace.";
string result = Regex.Replace(input, "\s+", "");

один из способов, который вы можете, это создать наследование страницы пользовательского представления; в этом переопределить Write() методы (будут основаны 3 метода), и в этих методах cast objects до strings, удалите пробелы и, наконец, вызовите base.Write();


 Str = Str.Replace(" ", "");

следует сделать трюк.