NancyFX 第九章 Responses(响应对象)

   和内容协商最最为紧密的当属Nancy的Response对象。

   在本书的第一张你应该就已经看到过Response对象,之前是使用它的AsFile 方法返回一个简单文件。

using Nancy;
namespace nancybook.modules
{
   public class BaseRoutes : NancyModule
   {
       public BaseRoutes()
       {
           Get[@"/"] = _ => Response.AsFile("index.html", "text/html");
       }
    }
}

   你可以通过AsFile 方法检索服务器的文件系统,通过设置mine类型(文件类型),促使客户端进行下载或者使用特定的方式打开。

   在最新发布的谷歌浏览器中一般都内置了PDF阅读器,所以很简单就能定义一个路由模块向客户端浏览器发送PDF文件。

using Nancy;
namespace nancybook.modules
{
    public class BaseRoutes : NancyModule
   {
       public BaseRoutes()
       {
           Get[@"/"] = _ => Response.AsFile("myreport.pdf", "application/pdf");
       }
   }
}

   正如你看到的,浏览器中展示了PDF:

   一般情况下,使用这种方式返回文件,你需要考虑到终端用户浏览器的处理设置。一些用户可以设置单独的阅读器打开PDF文件,或者是把文件下载到磁盘。通过这种方式返回文件,并正确设置mime类型(文件类型),其实就是告诉浏览器你发送了什么文件,让它决定如何处理。

 

posted @ 2017-02-19 14:49  理论家  阅读(1067)  评论(0编辑  收藏  举报
点击这里给我发消息