一、前言

在MVC中,区域(Area)和分部视图(PartialView)应该是我们用的十分频繁的两个东西
今天我们就在Nancy中,把这两个东西简单的用起来!

二、简单使用之区域

区域,无论是对开发过程还是代码管理都占据着一个重要的地位!
下面我们就来看看Nancy中的区域要如何用,其实,准确来说,
Nancy中并没有明确提出区域这个概念,也只是我凭着与MVC的对照,自己添加的一个好理解的概念
下面就来看一下吧,这里用到了Nancy,Nancy.Hosting.Aspnet这些引用
这里是所有的视图引擎通用的功能,所以就不添加特殊的视图引擎(Razor、Spark等)
先来看看我们的项目框架
我们定义了三个HomeModule,分别在不同的位置,Admin、Other、根目录
这样就相当于有了Admin、Other、根目录三个区域
具体的内容如下 :
Admin/HomeModule.cs
 1     public class HomeModule : NancyModule
 2     {
 3         public HomeModule() : base("/admin")
 4         {
 5             Get["/"] = _ =>
 6             {
 7                 return View["index"];
 8             };
 9         }
10     }  

Other/HomeModule.cs
1     public class HomeModule : NancyModule
2     {
3         public HomeModule() : base("/other")
4         {
5             Get["/"] = _ => { return View["index"]; };
6         }
7     }  

HomeModule.cs
 1     public class HomeModule : NancyModule
 2     {
 3         public HomeModule()
 4         {
 5             Get["/"] = _ =>
 6             {
 7                 return View["index"];
 8             };
 9         }
10     }  

同样的,我们也定义相应区域的视图!
具体如下 :
Views/Admin/Home/index.html
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title></title>
 5     <meta charset="utf-8" />
 6 </head>
 7 <body>
 8     Admin->Home->Index
 9 </body>
10 </html>

Views/Other/Home/index.html

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title></title>
 5     <meta charset="utf-8" />
 6 </head>
 7 <body>
 8     Other->Home->Index
 9 </body>
10 </html>

Views/Home/index.html

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title></title>
 5     <meta charset="utf-8" />
 6 </head>
 7 <body>
 8     Home -> Index
 9 </body>
10 </html>   

这样就简单的把不同的功能分在了不同的区域了,下面看看效果
是不是很简单呢!其实跟我们正常的用法没用多少区别!就是多了几个文件夹,便于管理。
我们也可以在Module中指定视图的位置,但简易还是区分开好一点,目的还是管理方便。
Nancy中视图引擎的细节,可以帮助我们更清晰的理解视图的加载等内容,由于这一块已经有园友讲述过了
在此我就不再重复了
.NET Nancy 详解(三) Respone 和 ViewEngine

三、简单使用之分部视图

分部视图这一块,我主要是讲一下关于Razor(因为个人用的比较多)
用法很简单
@Html.Partial(viewName,modelForPartial)  
是不是跟MVC中的基本一致呢?
我们现在定义两个分部视图,首部_PartialHeader.cshtml和尾部_PartialFooter.cshtml
1 <div>首部</div>

1 <div>尾部</div>  

然后定义一个布局页面_Layout.cshtml
 1 @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
 2 <!DOCTYPE html>
 3
 4 <html>
 5 <head>
 6     <meta name="viewport" content="width=device-width" />
 7     <title>@ViewBag.Title</title>
 8 </head>
 9 <body>
10     @Html.Partial("/Partials/_PartialHeader")
11     <div>
12         @RenderBody()
13     </div>
14     @Html.Partial("/Partials/_PartialFooter")
15 </body>
16 </html>  

下面编写Module返回一个视图index.cshtml
1 @{
2     Layout = "Views/_Layout.cshtml";
3 }
4
5 内容

运行结果
这个是静态的分部页面,下面我们绑定一下model,也就是在Partial带两个参数
编写一个分部视图_PartialTime.cshtml
1 <span>@Model</span>

在刚才的_Layout.cshtml中添加下面的代码
1 @Html.Partial("/Partials/_PartialTime", Model)  

同时修改HomeModule
1           Get["/"] = _ =>
2             {
3                 var model = DateTime.Now.ToString();
4                 return View["index2",model];
5             };  

运行
OK了,正是我们所期待的
 
注:如果不在页面添加@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
我们的智能提示是不会出现Partial的!!
Partial是通过HtmlHelper来实现的,不过Nancy中的HtmlHelper,可用的类型与MVC相比少了很多。
像 @Html.ActionLink()这些是没有的。

转载于:https://www.cnblogs.com/catcher1994/p/5188800.html

Nancy之区域和分部视图的使用相关推荐

  1. 爱上MVC3系列~分部视图中的POST

    在PartialView中进行表单提交,有什么用呢,我来总结一下: 1 这个表单不只一个地方用到 2 可能涉及到异步的提交问题 这两种情况都有可能需要把表单建立在"分部视图"中,我 ...

  2. asp.net mvc 使用ajax请求 控制器 (PartialViewResult)分部的action,得到一个分部视图(PartialView)的HTML,进行渲染...

    在asp.net mvc 使用ajax请求获取数据的时候,我们一般是返回json或者xml,然后解析这些数据进行渲染,这样会比较麻烦,可以请求一个 分部action,返回一个分部视图 直接可以渲染,不 ...

  3. 爱上MVC~ajax调用分部视图session超时页面跳转问题

    这个问题出现了很多年了,都没有解决,问题是这样的,有一个需要授权才可以访问的分部视图,在一个view中使用ajax的方法去调用它,然后更新页面的局部DIV,这时,如果你长时间不操作,session会超 ...

  4. 如何在使用ASPMVC4的分部视图中获取数据展示

    如何在使用ASPMVC4的分部视图中获取数据展示 在ASPMVC4中,创建的网站项目会用到分部视图,通过@Html.Partial("视图名")来加载到页面上: 但是如何把数据附加 ...

  5. .net mvc 利用分部视图局部刷新.

    页面利用$.Ajax: $(function(){$("#btnpartview").click(function () {var model = [];model.push($( ...

  6. MVC5 + EF6 + Bootstrap3 (14) 分部视图PartialView

    Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-partialview.html 系列教程:MVC5 + E ...

  7. MVC学习七:Razor布局之加载分部视图【PartialView】

    Partial View 顾名思义就是Html代码片段,应用于此HTML代码多次被页面加载时使用.(类似于WebForm程序中的用户控件) 注:PartialView和正常的View页面在访问时没有任 ...

  8. MVC |分部视图 PartialView()

    介绍如何定义 其实它和普通视图没有多大区别,只是创建分部视图的时候视图里没有任何内容,你需要什么标签你自己加.第二就是分部视图不会执行_ViewStart.cshtml中的内容) 控制器 Partia ...

  9. html.partial传递模型,关于使用Html.RenderPartial和Html.Partial显示分部视图时提示参

    今天在使用使用Html.RenderPartial和Html.Partial显示分部视图时遇到了一个颇为奇怪的问题: 视图页面A: @model DataResult @Html.Partial(&q ...

最新文章

  1. 什么是“单播”“组播”和“多播”
  2. python自动整理文件夹_计算机文件和文件夹的Python自动管理,自动化,电脑,及
  3. js浮点数运算不精确 如何解决_解决 浏览器处理数字运算时精度丢失的方法
  4. bootstrap 总结
  5. HTMLCSS 第二天 笔记
  6. [常用]MySQL管理工具和应用程序
  7. 真正的手机密码大全!(整理完整版)
  8. 怎样开启无线热点服务器,Win7开启无线WIFI热点
  9. EHub_tx1_tx2_E100 Cartographer 完美部署安装
  10. 炮兵阵地(状压dp)
  11. dellnas存储服务器型号,Dell Storage NX系列NAS存储
  12. 台式计算机碟片怎么安装,怎样用光盘从装台式电脑系统?
  13. ZYNQ开发系列——使用AXI4LITE接口进行PS和PL交互
  14. IDEA 2021 将分支代码合并到另一分支上
  15. 陈慧琳“《江山美人》是我的代表作”
  16. Microsoft Graph Overview 概述
  17. Qt之JSON教程-实战篇
  18. mrmr 最大关联度-最小冗余度 特征选择
  19. 神兽保佑,永无BUG
  20. ASW3642方案说明|HDMI2.0双向多路切换方案|DP1.2双向多路切换方案

热门文章

  1. 北京软件测试报告,北京PMLAB软件测试报告
  2. Python,网络爬虫selenium与pyautogui抓取新浪微博用户数据
  3. 小Y的轮回之路——攒机装机、B150装win7
  4. dxgmms2.sys蓝屏的三种解决方法
  5. T-SQL中删除语句区别 - 转自: 搜搜问问
  6. 2019考研 报名条件是什么?
  7. 汕头大学信息与计算机学院研究生院,汕头大学研究生院
  8. CVE-2018-8120漏洞复现(提权)
  9. 利用Serverless实现网站监控脚本的实现!
  10. 同程旅行大数据集群在 Kubernetes 上的服务化实践