Как удалить пробелы из 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 object
s до string
s, удалите пробелы и, наконец, вызовите base.Write()
;