新建一个空的Web项目AspnetBootstrappingDemo

然后添加NuGet组件

  • Nancy
  • Nancy.Hosting.Aspnet
  • Nancy.ViewEngines.Razor

继续往项目里面添加Module,Views,Models文件夹,然而先写Models文件夹里面的类,往Models文件夹添加 RatPack类

 public string FirstName { get; set; }

再往Models文件夹里面添加RatPackWithDependencyText类,并让它继承RatPack

 public string ApplicationDependencyText { get; set; }
public string RequestDependencyText { get; set; }

再往Models文件夹里添加IApplicationDependency类

 string GetContent();

再往Models文件夹里面添加IRequestDependency类

 string GetContent();

再往Models文件夹里面添加ApplicationDependency类

private readonly DateTime currentDateTime;
/// <summary>
/// 初始化 RequestDependencyClass 类的新实例
/// </summary>
public ApplicationDependency()
{
this.currentDateTime = DateTime.Now;
}
public string GetContent()
{
return "这是一个应用程序级依赖项, 构建在:" + this.currentDateTime.ToLongTimeString();
}

继续往Models文件夹里面添加RequestDependency类

 private readonly DateTime currentDateTime;
/// <summary>
/// 初始化 RequestDependency 类的新实例
/// </summary>
public RequestDependency()
{
this.currentDateTime = DateTime.Now;
}
public string GetContent()
{
return "这是按请求的依赖项, 构造于:" + this.currentDateTime.ToLongTimeString();
}

然后往Module文件夹里面添加DependencyModule类

private readonly IApplicationDependency applicationDependency;
private readonly IRequestDependency requestDependency;
public DependencyModule(IApplicationDependency applicationDependency,IRequestDependency requestDependency)
{
this.applicationDependency = applicationDependency;
this.requestDependency = requestDependency;
Get("/",Lexan=>
{
var model = new RatPackWithDependencyText
{
FirstName="Lexan",
ApplicationDependencyText=this.applicationDependency.GetContent(),
RequestDependencyText=this.requestDependency.GetContent()
};
return View["razor-dependency",model];
});
}

继续往根目录下添加Bootstrapper类

 protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
//base.ConfigureApplicationContainer(container); //将应用程序依赖项注册为普通的单一实例
container.Register<IApplicationDependency,ApplicationDependency>().AsSingleton();
//将每个请求的依赖项注册为每个请求的单一实例
container.Register<IRequestDependency,RequestDependency>().AsPerRequestSingleton();
}

然后往Views文件夹里面添加razor-dependency页面

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>剃刀视图引擎Demo</title>
</head>
<body>
<div>
<h1>你好,@Model.FirstName</h1>
<p>这是一个剃刀的页面</p>
<p>@Model.ApplicationDependencyText</p>
<p>@Model.RequestDependencyText</p>
</div>
</body>
</html>

最后修改Web.config文件

      <httpHandlers>
<add verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*" />
</httpHandlers>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add name="Nancy" verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*" />
</handlers>
</system.webServer>

运行看看界面如何

好了,今天的博文到此结束,明天同一时间更新博文,期待你的关注,谢谢!

NancyFx 2.0的开源框架的使用-AspnetBootstrapping的更多相关文章

  1. NancyFx 2.0的开源框架的使用-Basic

    这是NancyFx开源框架中的Basic认证,学习一下! 首先当然是新建一个空的Web,BasicDemo 继续在项目中添加Nuget包,记得安装的Nuget包是最新的预发行版 Nancy Nancy ...

  2. NancyFx 2.0的开源框架的使用-CustomModule(自定义模块)

    NancyFx框架的自定义模块 新建一个空的Web项目 然后通过NuGet库安装下面的包 Nancy Nancy.Hosting.Aspnet 然后添加Models,Module,Views三个文件夹 ...

  3. NancyFx 2.0的开源框架的使用-ModelBinding(实现绑定)

    NancyFx框架中使用绑定模型 新建一个空的Web程序 然后安装Nuget库里面的包 Nancy Nancy.Hosting.Aspnet Nancy.ViewEnglines.Spark 并在We ...

  4. NancyFx 2.0的开源框架的使用-HosingOwin

    Nancy框架的Owin使用 先建一个空的Web项目 然后往Nuget库里面添加Nancy包 Nancy Nancy.Owin Nancy.ViewEnglines.Spark 然后添加Models, ...

  5. NancyFx 2.0的开源框架的使用-Authentication

    新建一个空的项目 新建好了空的项目以后,接着通过NuGet安装一下三个包 Nancy Nancy.Hosting.Aspnet Nancy.ViewEnglines.Razor 然后在项目中添加Mod ...

  6. NancyFx 2.0的开源框架的使用-Forms

    同样的像前面2篇博文一样,每个项目的开始基本都是建个空的Web项目 在NuGet库中安装以下几个NuGet包 Nancy Nancy.Authentication.Forms Nancy.Hostin ...

  7. NancyFx 2.0的开源框架的使用-Stateless

    同样和前面一样新建一个空的Web项目,都在根目录添加Module,Models,Views文件夹 添加Nuget包 在Models文件夹里面添加UserModel类 public string Use ...

  8. NancyFx 2.0的开源框架的使用-Stateless(二)

    继续上一篇Stateless的博文,在上一篇的博文的基础上稍微加点东西 接下来右键解决方案添加新项目,一样建一个空的Web项目 然后在StatelessDemoWeb项目里面添加Views文件夹,Sc ...

  9. NancyFx 2.0的开源框架的使用-Caching

    新建一个空的Web项目,命名CachingDemo 然后添加三个Nuget安装包 Nancy Nancy.Hosting.Aspnet Nancy.ViewsEngines.Razor 然后往项目里面 ...

随机推荐

  1. java.lang.NoClassDefFoundError异常

    1.错误信息 2.错误分析: JVM读到程序的第三行,会在当前路径 "D:\java" 下寻找com.yangquan.aolun这个包路径下的Cat类,但当前路径下根本就没有co ...

  2. POPTEST老李分享DOM解析XML之java

    POPTEST老李分享DOM解析XML之java   Java提供了两种XML解析器:树型解释器DOM(Document Object Model,文档对象模型),和流机制解析器SAX(Simple ...

  3. iOS项目之模拟请求数据

    如何在iOS开发中更好的做假数据? 当工期比较紧的时候,项目开发中会经常出现移动端等待后端接口数据的情形,不但耽误项目进度,更让人有种无奈的绝望.所以在开发中,我们常常自己做些假数据,以方便开发和UI ...

  4. webdriver介绍&与Selenium RC的比较

    什么是webdriver? webdriver是一个web自动化测试框架,不同于selenium IDE只能运行在firefox上,webdriver能够在不同的浏览器上执行你的web测试用例.其支持 ...

  5. macos系统下共语言gopath变量的设置

    一.问题 在macos下安装golang开发环境,想更改gopath路径,通过export GOPATH=/Volume/E/go 在vscode中通过go env命令查看GOPATH还是原始默认的, ...

  6. 深入浅出分析MySQL索引设计背后的数据结构

    在我们公司的DB规范中,明确规定: 1.建表语句必须明确指定主键 2.无特殊情况,主键必须单调递增 对于这项规定,很多研发小伙伴不理解.本文就来深入简出地分析MySQL索引设计背后的数据结构和算法,从 ...

  7. leetcode中Database题(一)

    Combine Two Tables Table: Person +-------------+---------+ | Column Name | Type | +-------------+--- ...

  8. 第六章 Hibernate关联映射

    第六章 hibernate关联映射一.本章知识点分为2部分:1.关联关系:单向多对一关联关系,双向一对多关联关系(含一对多关联关系),多对多关联关系2.延迟加载:类级别加载策略,一对多加载策略,多对一 ...

  9. spring的MVC执行原理

    spring的MVC执行原理 1.spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求 进行真正的处理工作. 2.DispatcherSer ...

  10. 使用 Gradle 编译 Java 项目时报错: Could not find Tools.jar

    在使用Android studio进行编译成jar的时候,遇到Gradle 编译错误,听前辈们说是jdk的版本不对,于是乎就更新了一下jdk, 然而可能是我重新安装jdk的时候改变了安装路径, 在pr ...