当前位置: 首页 > news >正文

西安好的网站建设公司排名接入网站备案要多久

西安好的网站建设公司排名,接入网站备案要多久,软件商城app下载,家政网站建设方案分析前文中我们介绍了Nancy中的路由#xff0c;这一篇我们来介绍一下Nancy中的视图引擎。 Nancy中如何返回一个视图(View) 在ASP.NET Mvc中#xff0c;我们使用ViewResult类来返回一个视图。Nancy中也提供了类似的功能, 在NancyModule类中#xff0c;Nancy提供了一个ViewRendere…前文中我们介绍了Nancy中的路由这一篇我们来介绍一下Nancy中的视图引擎。 Nancy中如何返回一个视图(View) 在ASP.NET Mvc中我们使用ViewResult类来返回一个视图。Nancy中也提供了类似的功能, 在NancyModule类中Nancy提供了一个ViewRenderer类型的View的属性来返回视图。 ViewRenderer类代码如下该类中提供了三个属性访问器 public class ViewRenderer : IHideObjectMembers{public ViewRenderer(INancyModule module);public Negotiator this[[Dynamic] dynamic model] { get; }public Negotiator this[string viewName] { get; }public Negotiator this[string viewName, [Dynamic] dynamic model] { get; }} public Negotiator this[string viewName] - 仅指定呈现的数据模型, Nancy会根据url自动匹配一个View文件public Negotiator this[string viewName] - 仅指定返回的View文件名public Negotiator this[string viewName, [Dynamic] dynamic model] - 不仅指定的View的文件名还指定了用于呈现的数据模型 下面我们修改之前的HelloModule.cs, 添加一个/hello的路由模板, 并使用View属性来返回一个视图 public class HelloModule : NancyModule{public HelloModule(){Get(/hello, p View[hello.html]);}} 然后我们创建一个wwwroot目录并在其中添加一个hello.html, 里面的代码如下 h1Hello World/h1 现在我们启动项目, 并输入/hello, 浏览器返回的结果如下。 不要慌张这说明我们的请求被Nancy处理了只是因为在服务器上没有正确找到hello.html这个文件所以报错了继续看完下一节的内容你的页面就能正确显示。 Nancy中的视图位置约定 Nancy中官网文档中介绍了好几种视图的位置约定它定义了Nancy中搜索视图文件的顺序和方式。 我们用以下代码为例 public class HelloModule : NancyModule{public HelloModule(){Get(/hello, p View[hello.html]);}} 当/hello请求进入Nancy管道后我们决定使用hello.html作为响应页面当Nancy尝试寻找这个页面时, Nancy首先会去寻找网站根目录下/views/[模块名]/[指定页面文件名], 如果找的到该文件Nancy即读取该页面内容并绑定数据模型返回给客户端这就是View and Module Name约定。在当前例子中即/views/Hello/hello.html如果找不到文件Nancy会继续寻找网站根目录下/[模块名]/[指定页面文件名], 这就是Module Name约定。当前例子中即/Hello/hello.html如果还是找不到文件Nancy会继续寻找网站根目录下/views/[指定页面文件名], 这就是View Folder Name约定。当前例子中即/views/hello.html如果还是找不到文件Nancy最终会去寻找网站根目录下/[指定页面文件名],这就是Root约定。当前例子中即/hello.html如果都找不到, Nancy会返回一个错误页切换网站根目录 在.NET Core中我们通常会将静态文件方式在wwwroot目录中, 而非网站根目录 这样会导致Nancy不能正确访问到正确的静态文件。这里我们就需要去修改Nancy默认的网站根目录设置。 Nancy我们可以通过实现IRootPathProvider接口的GetRootPath方法, 并覆盖DefaultNancyBootstrapper类中的RootPathProvider属性来实现自定义网站根目录。 首先我们创建一个新类CustomRootPathProvider。 public class CustomRootPathProvider : IRootPathProvider{public string GetRootPath(){return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, wwwroot);}} 代码中通过拼接目录, 我们将当前网站的根目录指向了wwwroot。 然后我们创建一个新类CustomBootstrapper, 让它继承NancyDefaultBootstrapper类并使用CustomerRootPathProvider作为Nancy的RootPathProvider。 public class CustomBootstrapper : DefaultNancyBootstrapper{protected override IRootPathProvider RootPathProvider{get{return new CustomRootPathProvider();}}} 特别注意当创建自定义Bootstrapper之后之前的Nancy的Trace功能会被屏蔽掉如果想重新启用Trace功能需要在CustomBootstrapper中加入如下代码。 public override void Configure(INancyEnvironment environment){environment.Tracing(enabled: true, displayErrorTraces: true);base.Configure(environment);} 现在我们重启项目, 输入/hello, 页面正确显示了。 Nancy中支持的视图引擎 Nancy中支持的视图引擎如下 Super Simple View Engine(SSVE)RazorSparkNDjangodotLiquid这里我们重点说明一下SSVE。 超级简单的视图引擎(Super Simple View Engine) Super Simple View Engine, 简称SSVE, 是Nancy默认提供的视图引擎 我们前面的例子使用的就是SSVE视图引擎。 下面我们介绍一个SSVE视图引擎的一些基本语法 输入变量的值 语法 Model[.Parameters] 例 BookModule.cs public class BookModule : NancyModule{public BookModule(){Get(/books/{bookId}, p View[book.html, new { BookId p.bookId }]);}} book.html The Book Id is Model.BookId 迭代 语法 Each[.Parameters] [Current[.Parameters]] EndEach 例 BookModule.cs public class BookModule : NancyModule{public BookModule(){Get(/books, p {return View[books.html, new{Books new ListBook {new Book(S001, Math 101),new Book(T001, C# Programming)}}];});}}public class Book{public Book(string isbn, string bookName){ISBN isbn;BookName bookName;}public string ISBN { get; set; }public string BookName { get; set; }} books.html tabletrISBN/trtrBook Name/trtbodyEach.BookstrtdCurrent.ISBN/tdtdCurrent.BookName/td/trEndEach/tbody /table 条件 语法 If[Not].Parameters [contents] EndIf 注意这里只支持bool类型的变量不支持表达式 例 BookModule.cs public class BookModule : NancyModule{public BookModule(){Get(/books, p {return View[booksWithIf.html, new{Books new ListBook {new Book(S001, Math 101, true),new Book(T001, C# Programming, false)}}];});}}public class Book{public Book(string isbn, string bookName, bool isNew){ISBN isbn;BookName bookName;IsNew isNew;}public string ISBN { get; set; }public string BookName { get; set; }public bool IsNew { get; set; }} booksWithIf.html tabletrISBN/trtrBook Name/trtbodyEach.BooksIf.IsNewtrtdCurrent.ISBN/tdtdCurrent.BookName/td/trEndIfEndEach/tbody /table 输出Partial View 语法 Partial[view name[, Model.Property]] 例 BookModule.cs public class BookModule : NancyModule{public BookModule(){Get(/books/{bookId}, p View[bookWithPartial.html, new { BookId p.bookId }]);}} partial.html h1Hello Nancy/h1 bookWithParital.html The Book Id is Model.BookIdPartial[partial.html]模板页 语法 Master[name]Section[name] EndSection 例 BookModule.cs public class BookModule : NancyModule{public BookModule(){Get(/books/{bookId}, p View[bookWithMaster.html, new { BookId p.bookId }]);}} bookWithMaster.html Master[master.html]Section[content] The Book Id is Model.BookId EndSection master.html h1This is just an example/h1div styleborder:1px solid #000;width:200px;Section[Content]; /div Razor SSVE视图引擎虽然很简单但是提供的方法不多应对许多复杂场景都需要去自定义语法模板。 除了SSVE, Nancy中还可以使用和ASP.NET Mvc中一样的Razor视图引擎, 其中的语法和使用方式与ASP.NET Mvc中的Razor引擎基本一样。但是需要注意的是Nancy.Viewengines.Razor还没有完成针对.NET Stardard重写所以如果想在Nancy中使用Razor引擎的同学只能在非.NET Core项目中使用它 相关的教程请参见官网 总结 Nancy的视图引擎自2016.12月之后就没有再发布了, 个人感觉Nancy现在发展的重点已经不再视图引擎上了, Nancy更多的作为WebApi来使用最近有发现一本书介绍了Nancy的微服务实践有兴趣的同学可以一起读一下。 Microservices in .NET Core with Examples in Nancy本篇博客源代码 下一篇我们一起来学习Nancy中的数据模型绑定。 转载于:https://www.cnblogs.com/lwqlun/p/9629185.html
http://www.pierceye.com/news/113299/

相关文章:

  • wordpress影视站网站太花哨
  • 青岛 机械 中企动力提供网站建设小说网站怎么做空间小
  • 通江县网站建设做网站到八方资源网怎么样
  • 国家网站建设ssh架构jsp网站开发
  • 浦东新区手机网站设计网络营销做得好的产品
  • 浙江市建设网站市场监督管理局电话举报电话
  • 企业网站的建设的功能定位菏泽百度推广公司电话
  • linux系统怎么做网站女生去住建局好不好
  • 自己搭建环境建设网站网站开发温州
  • 下沙做网站软件erp系统的主要功能
  • 郑州网站建设专家最新手机排行榜2021
  • 宠物店网站建设策划书重庆网站建设 红旗河沟
  • 一般网站自己可以做播放器吗最简单的一个网站开发
  • 网站的开发商务网站安全方案设计
  • 如何建立网站教材漳诈网站建设
  • 开家网站设计公司广州网站建设app开发
  • 建站服务公司网站源码成都游戏外包公司排名
  • 呼伦贝尔网站建设呼伦贝尔astro wordpress
  • 做网站需要好多钱专业制作广告字
  • 网站建设的需要是什么seo营销方案
  • 网站开发服务的协议wordpress自动翻译
  • 网站网站制作400多少钱wordpress 会员积分
  • 天津网站建设首选津坤科技做视频网站用什么好处
  • wordpress ffmpegsem seo是什么意思呢
  • 九江建网站的公司做废钢那个网站好
  • 做网站官网需多少钱wordpress查看访问者ip
  • 美食网站php源码wordpress 文章消失
  • 四川住房和城乡建设厅网站万达网站建设
  • 网站运营一般做那些分析快手营销软件
  • 重庆大渡口建设网站站群搭建