Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC视图后处理_Asp.net Mvc - Fatal编程技术网

Asp.net mvc ASP.NET MVC视图后处理

Asp.net mvc ASP.NET MVC视图后处理,asp.net-mvc,Asp.net Mvc,在Monorail中,有一个变换过滤器概念,其中渲染视图可以应用进一步的处理。用例: 过程降价 删除空白 去除不需要的字符 我怀疑在ASP.NET MVC中没有现成的方法可以做到这一点,但有人有建议吗?我正在使用NVelocity视图引擎。创建一个自定义操作筛选器并重写OnResultExecuted方法来执行额外的处理,然后用该属性装饰控制器。我实现的一个可能解决方案是创建一个自定义ViewResult并在其中执行工作。这不是一个优雅的解决方案,因为我基本上只是将普通实现复制并粘贴到重写的

在Monorail中,有一个变换过滤器概念,其中渲染视图可以应用进一步的处理。用例:

  • 过程降价
  • 删除空白
  • 去除不需要的字符

我怀疑在ASP.NET MVC中没有现成的方法可以做到这一点,但有人有建议吗?我正在使用NVelocity视图引擎。

创建一个自定义操作筛选器并重写OnResultExecuted方法来执行额外的处理,然后用该属性装饰控制器。

我实现的一个可能解决方案是创建一个自定义ViewResult并在其中执行工作。这不是一个优雅的解决方案,因为我基本上只是将普通实现复制并粘贴到重写的ExecuteSult中,并在那里调整渲染输出。这一行:

View.Render(viewContext, context.HttpContext.Response.Output);
变成:

TextWriter writer = new StringWriter();

View.Render(viewContext, writer);

string renderedResult = writer.ToString();

renderedResult = renderedResult.Replace("hello", "goodbye");

context.HttpContext.Response.Output.Write(renderedResult);
有关资料来源如下:


在我看来,这是一种非常糟糕的方法,但它确实有效。

如何在OnResultExecuted中获得渲染视图?