Nancy 返回值详解
简介
Nancy 是一个轻量级的,简单粗暴的framework用来构建基于HTTP的各种服务,兼容.Net和Mono。它的返回值也是多种多样的,适应各种不同的情况。包括Response.AsFile()、Response.AsRedirect()、 Response.AsImage()、 Response.AsJson()、Response.AsText()、 Response.AsXml()等
一:string
Get["/get"] = parameters =>
{
return "Nancy";
}
二:返回视图,像MVC一样,需要有Views/Home/index.html网页才能成功
Get["/get"] = parameters =>
{
return View["/home/index.html"]; }
三:Response
Post["/GetMore"] = p =>
{
Product pd = new Product();
pd.Id = ;
pd.Address = "北京超越";
pd.Name = "苹果手机";
pd.Price = ;
return Response.AsJson(pd);
return Response.AsXml(pd); }
四:Response返回值源码
public static implicit operator Response(HttpStatusCode statusCode)
{
return new Response { StatusCode = statusCode };
} public static implicit operator Response(int statusCode)
{
return new Response { StatusCode = (HttpStatusCode)statusCode };
} public static implicit operator Response(string contents)
{
return new Response { Contents = contents, ContentType = "text/html", StatusCode = HttpStatusCode.OK };
} public static implicit operator string(Response response)
{
return response.Contents;
}
五:Contents源码
public static class FormatterExtensions
{
public static Response AsJson<TModel>(this IResponseFormatter formatter, TModel model)
{
return new JsonResponse<TModel>(model);
} public static Response AsXml<TModel>(this IResponseFormatter formatter, TModel model)
{
return new XmlResponse<TModel>(model);
} public static Response Image(this IResponseFormatter formatter, string imagePath)
{
return new ImageResponse(imagePath);
}
}
public static Action<Stream> Static(this IViewEngine engine, string virtualPath)
{
return stream => { var path = HostingEnvironment.MapPath(virtualPath); using (var reader = new StreamReader(path))
{
using(var writer = new StreamWriter(stream))
{
writer.Write(reader.ReadToEnd());
writer.Flush();
}
} };
},
六、自定义返回值
Get["/get"] = parameters =>
{
var path = AppDomain.CurrentDomain.BaseDirectory + "/Views/home/index.html";
Response response = new Response();
response.ContentType = "text/html";
response.Contents = stream =>
{
using (var reader = new StreamReader(path))
{
using (var writer = new StreamWriter(stream))
{
writer.Write(reader.ReadToEnd());
writer.Flush();
}
}
}; return response; };
参考文章:http://www.cnblogs.com/bnbqian/p/4944829.html
Nancy 返回值详解的更多相关文章
- Java和Ibatis调用存储过程并取得返回值详解
Java和Ibatis调用存储过程并取得返回值详解 2011-07-19 17:33 jiandanfeng2 CSDN博客 字号:T | T 本文主要介绍了Java和Ibatis调用存储过程的方法, ...
- js弹窗返回值详解(window.open方式)
今天在改公司一个老系统时,碰到了window.open()的这个语法.虽然这个方法有点老,不太用了.所以有点不清楚父级弹框如何获取子级页面返回的值.为了解决这个问题,上网搜了一下.原作者参考网址:ht ...
- PHP $_FILES中error返回值详解
$_FILES['file']['error']值 UPLOAD_ERR_OK: 0 //正常,上传成功 UPLOAD_ERR_INI_SIZE: 1 //上传文件大小超过服务器允许上传的最大值,ph ...
- php 文件上传$_FILES中error返回值详解
用PHP上传文件时,我们会用程序去监听浏览器发送过来的文件信息,首先会通 过$_FILES[fieldName]['error']的不同数值来判断此欲上传的文件状态是否正常.$_FILES[field ...
- ajax中error函数参数与返回值详解 200 300 400 500
201-206:都表示服务器成功处理了请求的状态代码,说明网页可以正常访问. 200:(成功) 服务器已成功处理了请求.通常,这表示服务器提供了请求的网页. 201:(已创建) 请求成功且服务器已创建 ...
- c++ 参数传递与返回值详解(reference)
pass by value or pass by reference? 我们知道,当函数在传递值的时候,会新建一个变量(没有名字)储存这个值 然后传递.降低程序运行的效率. 如果使用引用(refere ...
- 用PHP上传文件时$_FILES中error返回值详解
用PHP上传文件时,我们会用程序去监听浏览器发送过来的文件信息,首先会通 过$_FILES[fieldName]['error']的不同数值来判断此欲上传的文件状态是否正常.$_FILES[field ...
- 我的Android进阶之旅------>HTTP 返回状态值详解
(本文转载于:http://blog.csdn.net/ithomer/article/details/10240351) 当用户点击或搜索引擎向网站服务器发出浏览请求时,服务器将返回Http Hea ...
- HTTP 返回状态值详解
当用户点击或搜索引擎向网站服务器发出浏览请求时,服务器将返回Http Header Http头信息状态码,常见几种如下: 1.Http/1.1 200 OK 访问正常 表示成功访问,为网站可正常访问 ...
随机推荐
- Linux安装JDK(rpm)
我以JDK1.8为例 ⒈下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...
- 【SVN】关于钩子的一些使用
前一段时间,李总让我研究一下SVN钩子的使用,以前没接触过这方面东西,在这里记录一下. 何为钩子? 所谓SVN钩子就是一些与版本库事件发生时触发的程序,例如新修订版本的创建,或者是未版本化属性的修改. ...
- Nginx安装及配置详解【转】
nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...
- 理解OAuth 2.0(转)
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料 ...
- weblogic和was的巡检报告模板
weblogic巡检报告模板 https://max.book118.com/html/2017/0710/121553357.shtm 用jrockit How to tell Our WebLo ...
- springcloud-3:required a bean of type 'com.netflix.discovery.DiscoveryClient' that could not be found.
在写客户端程序的时候,总是报'com.netflix.discovery.DiscoveryClient' that could not be found. 原因在于导入了错误的类:com.netfl ...
- swiper轮播图(逆向自动切换类似于无限循环)
swiper插件轮播图,默认的轮播循序是会从右向左,第一张,第二张,第三张,然后肉眼可见是的从第三张从左到右倒回第一张,这样就会有些视觉体验不高, ,不过还是能够用swiper本身的特性更改成无限循环 ...
- Confluence 6 白名单允许进入和禁用
允许进入 启用 CORS 请求,将会从特定的 URL 来源中允许进入(Allow Incoming).URL 格式必须匹配格式 scheme://host[:port],结尾是没有反斜杠的(:port ...
- Confluence 6 导入模板的备注
创建你自己的模板组件(template bundles).你可以使用插件(add-on,也可以被称 plugin)来创建模板组件然后将这些模板组件上传到你的 Confluence 站点中.你可以从你的 ...
- Confluence 6 升级自定义的站点和空间布局
随着 Confluence 的演变.默认的站点和空间布局也会随着 Confluence 升级而让使用的所有页面进行改变.随着一些新功能的加入和一些老功能的修改,默认的布局也需要进行修改来支持这些改变. ...