小心!这个答案基于 nancy 版本0.11,从那时起发生了很多变化。路线中的版本应该仍然有效。如果您使用内容协商,则不是后续管道中的那个。
您可以将内容写入路由中的内存流,也可以将委托添加到 After Pipeline:
public class MyModule: NancyModule
{
public MyModule()
{
Get["/"] = x => {
var x = _repo.X();
var response = View["my_view", x];
using (var ms = new MemoryStream())
{
response.Contents(ms);
ms.Flush();
ms.Position = 0;
//now ms is a stream with the contents of the response.
}
return view;
};
After += ctx => {
if (ctx.Request.Path == "/"){
using (var ms = new MemoryStream())
{
ctx.Response.Contents(ms);
ms.Flush();
ms.Position = 0;
//now ms is a stream with the contents of the response.
}
}
};
}
}