NancyFx 2.0的开源框架的使用-HosingOwin
Nancy框架的Owin使用
先建一个空的Web项目


然后往Nuget库里面添加Nancy包
- Nancy
- Nancy.Owin
- Nancy.ViewEnglines.Spark

然后添加Models,Module,Views三个文件夹

往Models文件夹里面添加Index类
public string StatusMessage { get; set; }

然后往Module文件夹里面添加MainModule类
public MainModule()
{
Get("",Lexan=>Root(Lexan));
}
private object Root(dynamic o)
{
var env = GetOwinEnvironmentValue<IDictionary<string, object>>(this.Context.Items, NancyMiddleware.RequestEnvironmentKey);
if (env==null)
{
return "未在 owin 主机上运行";
}
var requestMethod = GetOwinEnvironmentValue<string>(env,"owin的请求方法");
var requestPath = GetOwinEnvironmentValue<string>(env,"owin的请求路径");
var owinVersion = GetOwinEnvironmentValue<string>(env,"owin的版本");
var statusMessage = string.Format("向 {1} 发出了一个 {0} 请求, 它在 owin 上运行{2}",requestMethod,requestPath,owinVersion);
return View["Root",new Models.Index { StatusMessage=statusMessage}];
}
private static T GetOwinEnvironmentValue<T>(IDictionary<string,object> env,string name,T defaultValue=default(T))
{
object value;
return env.TryGetValue(name,out value)&& value is T ?(T)value:defaultValue;
}

然后在根目录添加一个Startup类
public void Configuration(IAppBuilder app)
{
app.UseNancy();
}

然后在Views文件夹中添加Root.html
<viewdata model="HostingOwinDemo.Models.Index" />
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Nancy Owin Host</title>
</head>
<body>
<h1>Nancy Owin Host</h1>
<p>这是通过 OWIN 宿主渲染的视图 ${Model.StatusMessage}</p>
</body>
</html>

然后修改Web.config配置文件
<appSettings>
<add key="owin:HandleAllRequests" value="true"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.2"/>
<!--<httpRuntime targetFramework="4.5.2"/>-->
<httpRuntime maxRequestLength=""/>
<pages controlRenderingCompatibilityVersion="4.0"/>
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength=""/>
</requestFiltering>
</security>
</system.webServer>

然后按F5进行调试运行,有点乱码

谢谢欣赏
NancyFx 2.0的开源框架的使用-HosingOwin的更多相关文章
- NancyFx 2.0的开源框架的使用-Basic
这是NancyFx开源框架中的Basic认证,学习一下! 首先当然是新建一个空的Web,BasicDemo 继续在项目中添加Nuget包,记得安装的Nuget包是最新的预发行版 Nancy Nancy ...
- NancyFx 2.0的开源框架的使用-CustomModule(自定义模块)
NancyFx框架的自定义模块 新建一个空的Web项目 然后通过NuGet库安装下面的包 Nancy Nancy.Hosting.Aspnet 然后添加Models,Module,Views三个文件夹 ...
- NancyFx 2.0的开源框架的使用-ModelBinding(实现绑定)
NancyFx框架中使用绑定模型 新建一个空的Web程序 然后安装Nuget库里面的包 Nancy Nancy.Hosting.Aspnet Nancy.ViewEnglines.Spark 并在We ...
- NancyFx 2.0的开源框架的使用-Authentication
新建一个空的项目 新建好了空的项目以后,接着通过NuGet安装一下三个包 Nancy Nancy.Hosting.Aspnet Nancy.ViewEnglines.Razor 然后在项目中添加Mod ...
- NancyFx 2.0的开源框架的使用-Forms
同样的像前面2篇博文一样,每个项目的开始基本都是建个空的Web项目 在NuGet库中安装以下几个NuGet包 Nancy Nancy.Authentication.Forms Nancy.Hostin ...
- NancyFx 2.0的开源框架的使用-Stateless
同样和前面一样新建一个空的Web项目,都在根目录添加Module,Models,Views文件夹 添加Nuget包 在Models文件夹里面添加UserModel类 public string Use ...
- NancyFx 2.0的开源框架的使用-Stateless(二)
继续上一篇Stateless的博文,在上一篇的博文的基础上稍微加点东西 接下来右键解决方案添加新项目,一样建一个空的Web项目 然后在StatelessDemoWeb项目里面添加Views文件夹,Sc ...
- NancyFx 2.0的开源框架的使用-AspnetBootstrapping
新建一个空的Web项目AspnetBootstrappingDemo 然后添加NuGet组件 Nancy Nancy.Hosting.Aspnet Nancy.ViewEngines.Razor 继续 ...
- NancyFx 2.0的开源框架的使用-Caching
新建一个空的Web项目,命名CachingDemo 然后添加三个Nuget安装包 Nancy Nancy.Hosting.Aspnet Nancy.ViewsEngines.Razor 然后往项目里面 ...
随机推荐
- Oracle子查询中any、some、all之间的区别
用some,any和all对子查询中返回的多行结果进行处理. 下面我们来简单介一下这几个关键词的含义. * Some在此表示满足其中一个的意义,是用or串起来的比较从句. * Any也表示满足其中一个 ...
- Flash加载ini文件!
这个帖子里有解决方案: http://bbs.9ria.com/thread-405128-1-1.html
- WCF消息压缩
对于WCF应用来说,传输前压缩请求消息和回复消息,不但可以降低网络流量,也可以提高网络传输的性能 一.消息压缩方案 二.用于数据压缩与解压缩组件 三.用于消息压缩与解压的组件 四.用于对请求/回复消息 ...
- DynamicObject扩展--实现JSON和DynamicObject的序列化与反序列化
度娘许久,找不到我满意的答案,于是自己东凑西凑实现一个. DynamicObject扩展--实现JSON和DynamicObject的序列化与反序列化,亲测良好. 看代码 using System; ...
- WCF和ASP.NET Web API在应用上的选择
小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/shareto ...
- FineUIMvc
FineUIMvc 在线示例源代码下载(包含上面列出的全部 50 种主题,基础版可以免费使用) FineUIMvc 在线示例 FineUI 官网首页
- DOM Mutation Observer
源链接:http://www.jianshu.com/p/b5c9e4c7b1e1
- Jmeter自动化测试工具的简单使用--HTTP测试
Jmeter自动化测试工具的简单应用 1.安装Jmeter 链接: https://pan.baidu.com/s/1mhSzU68 密码: 446z 到这里下载 1.1 jmeter 将下载好的 ...
- Android 代码库(自定义一套 Dialog通用提示框 )
做Android开发五年了,期间做做停停(去做后台开发,服务器管理),当回来做Android的时候,发现很生疏,好些控件以前写得很顺手,现在好像忘记些什么了,总要打开这个项目,打开那个项目 ...
- DOM 以及JS中的事件
[DOM树节点] DOM节点分为三大节点:元素节点,文本节点,属性节点. 文本节点,属性节点为元素节点的两个子节点通过getElment系列方法,可以去到元素节点 [查看节点] 1 document. ...