博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nancy 返回值详解
阅读量:6149 次
发布时间:2019-06-21

本文共 2947 字,大约阅读时间需要 9 分钟。

简介

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 = 10;  pd.Address = "北京超越";  pd.Name = "苹果手机";  pd.Price = 1000; 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
(this IResponseFormatter formatter, TModel model) { return new JsonResponse
(model); } public static Response AsXml
(this IResponseFormatter formatter, TModel model) { return new XmlResponse
(model); } public static Response Image(this IResponseFormatter formatter, string imagePath) { return new ImageResponse(imagePath); }}

 

public static Action
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

转载于:https://www.cnblogs.com/xiaoyaodijun/p/7116540.html

你可能感兴趣的文章
《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)...
查看>>
Selenium2+python自动化37-爬页面源码(page_source)
查看>>
pm2-web
查看>>
011-Spring Boot 运行流程分析SpringApplication.run
查看>>
[解决方案]sql server复制需要有实际的服务器名称才能连接到服务器
查看>>
用yarn替代npm
查看>>
ReSharper2017.3的列对齐、排版格式、列对齐错误的修复
查看>>
BZOJ3273 : liars
查看>>
mysql开发之---每日一得01
查看>>
Java基础-MySQL数据库扫盲篇
查看>>
Echarts关于仪表盘
查看>>
php实现求数组中出现次数超过一半的数字(isset($arr[$val]))(取不同数看剩)(排序取中)...
查看>>
(转)创业的注意事项
查看>>
超简单的视频对象提取程序
查看>>
『TensorFlow』线程控制器类&变量作用域
查看>>
【知识小结】Git 个人学习笔记及心得
查看>>
已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性...
查看>>
『流畅的Python』第9章笔记_对象
查看>>
结构化数据、半结构化数据和非结构化数据
查看>>
SQLServer 2014 本地机房HA+灾备机房DR解决方案
查看>>