2

我有一个 asp.Net MVC 4 项目。在我的项目中只呈现大报告(使用 table html 元素)所以我有一个考虑:我应该在运行时删除空格,就像我如何从 ASP.NET MVC 中删除空格一样# 输出? 或在我编写 html 代码时删除所有空格。这意味着我将在部署之前手动删除 Visual Studio 中的所有空格

大家帮帮我?

4

1 回答 1

1

如果运行时解决方案(在链接中描述)在生产中不会成为问题,我想您正在尝试获得答案,对吗?好吧,正如这里提到的:

String.Replace .NET Framework 的内存效率和性能

你应该做一些自己的基准测试。可以肯定的是,big report为许多用户替换 a 的字符不会影响性能。

但我的建议是在运行时进行。在 AOP 过滤器中可能会更好。一次,当所有响应完成时(我正在做类似的功能替换一些字符串)。

public virtual void OnResultExecuted(ResultExecutedContext filterContext)
{
  // Change result as needed
  filterContext.HttpContext.Response.Filter = 
    new ResponseStream(filterContext.HttpContext.Response.Filter);
}

这是溪流

protected class ResponseStream : MemoryStream
{
    readonly Stream _stream;
    public ResponseStream(Stream stream)
    {
        _stream = stream;
    }

    public override void Write(byte[] buffer, int offset, int count)
    {
        //base.Write(buffer, offset, count);
        string html = System.Text.Encoding.Default.GetString(buffer);

        // TODO - here remove spaces...

        byte[] outdata = System.Text.Encoding.Default.GetBytes(html);

        //write bytes to stream
        _stream.Write(outdata, 0, outdata.GetLength(0));
    }
}

第二个想法,可能是在您的 IIS 上启用动态压缩(如果使用 IIS 7.0,请阅读http://technet.microsoft.com/en-us/library/cc753681%28v=ws.10%29.aspx

于 2012-11-30T05:05:44.287 回答