- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Nancy框架
ASP.NET MVC
Title: Nancy框架
Date: 2014-09-12 23:39
Category: .Net
Tags: Nancy, C#, .Net, web
Author: 刘理想
[TOC]
Nancy框架
一、创建第一个Nancy应用
1. 安装Nancy项目模板
2. 创建 Nancy Empty Web Application with ASP.NET Hosting
3. 添加 Nancy module ,它是一个标准C#类 ,通过添加下面几行代码定义了web应用的路由处理方法。
4. 编译并运行。
public class HelloModule : NancyModule
{
public HelloModule()
{
Get[/] = parameters = Hello World;
}
}
二、探索Nancy的module
Module继承自NancyModule 类。Module是必不可少的.它不仅定义了路由 ,还提供了许多其他信息 ,比如请
求、上下文、构造响应的辅助方法、视图渲染等等。
1. 模块能够在全局被发现
可以在任意地方定义module ,比如外部的dll等 ,这为代码的复用带来很大的方便。不用担心效率问题 ,扫描
module只在程序启动时发生。
2. 使用模块为路由创建一个根
类似命名空间的概念 ,在创建构造方法时传给base一个名称。
public class ResourceModule : NancyModule
{
public ResourceModule() : base(/products)
{
// would capture routes to /products/list sent as a GET request
Get[/list] = parameters = {
return The list of products;
};
}
}
三、定义路由
路由是在module的构造方法中定义的。为了定义一个路由 ,你需要声明 方法 + 模式+ 动作 +(可选) 条件
比如 :
public class ProductsModule : NancyModule
{
public ProductsModule()
{
Get[/products/{id}] = _ =
{
//do something
};
}
}
或者异步
public class ProductsModule : NancyModule
{
public ProductsModule()
{
Get[/products/{id}, runAsync: true] = async (_, token) =
{
//do something long and tedious
};
}
}
1. 方法
支持HTTP常见方法 :DELETE , GET , HEAD , OPTIONS , POST , PUT , PATCH
2. 模式
模式能够自定义 ,Nancy提供了一些常用的 :
1. 字面量 - /some/literal/segments
2. 捕获片段 - /{name} ,获取URL的片段 ,并传给路由的Action
3. 捕获可选片段 - /{name?} ,添加了一个问号 ,片段就是可选的了
4. 捕获可选/默认片段 - /{name?default}
5. 正则片段 - /(?age[\d]{1,2}) ,使用命名捕获组来捕获片段 ,如果不需要捕获 ,使用非捕获组 ,比
如 (?:regex-goes-here)
6. 贪心片段 - /{name*} ,从/处开始捕获
7. 贪心正则捕获 - ^(?name[a-z]{3, 10}(?:/{1})(?action[a-z]{5, 10}))$
8.
您可能关注的文档
最近下载
- 26. 26个英文字母-复习课件-1字母闯关游戏(共30张PPT).pdf VIP
- 上海市职业技能等级认定试卷 模具工(四级)考场、考生准备通知单02.doc VIP
- 健康险手册使用说明.pptx VIP
- 急性心肌梗死诊断及治疗课件.ppt VIP
- 饲料添加剂项目企业经营战略手册(参考).docx
- 光伏电站项目建设方案.docx
- 数字智慧方案5496丨商业综合体地块智能化系统设计汇报方案(66页PPT).pptx VIP
- 体例格式9:工学一体化课程《小型网络安装与调试》任务1学习任务工作页.docx VIP
- 城投集团防汛防台专项应急预案(2018版).docx VIP
- 量子之年:从2025年从概念到现实报告(英文版).pdf VIP
文档评论(0)