天天看点

Nancy之区域和分部视图的使用

Nancy之区域和分部视图的使用

在Nancy中使用区域和分部视图

在MVC中,区域(Area)和分部视图(PartialView)应该是我们用的十分频繁的两个东西

今天我们就在Nancy中,把这两个东西简单的用起来!

区域,无论是对开发过程还是代码管理都占据着一个重要的地位!

下面我们就来看看Nancy中的区域要如何用,其实,准确来说,

Nancy中并没有明确提出区域这个概念,也只是我凭着与MVC的对照,自己添加的一个好理解的概念

下面就来看一下吧,这里用到了Nancy,Nancy.Hosting.Aspnet这些引用

这里是所有的视图引擎通用的功能,所以就不添加特殊的视图引擎(Razor、Spark等)

先来看看我们的项目框架

Nancy之区域和分部视图的使用

我们定义了三个HomeModule,分别在不同的位置,Admin、Other、根目录

这样就相当于有了Admin、Other、根目录三个区域

具体的内容如下 :

Admin/HomeModule.cs

Other/HomeModule.cs

HomeModule.cs

同样的,我们也定义相应区域的视图!

具体如下 :

Views/Admin/Home/index.html

Views/Other/Home/index.html

Views/Home/index.html

这样就简单的把不同的功能分在了不同的区域了,下面看看效果

Nancy之区域和分部视图的使用

 是不是很简单呢!其实跟我们正常的用法没用多少区别!就是多了几个文件夹,便于管理。

我们也可以在Module中指定视图的位置,但简易还是区分开好一点,目的还是管理方便。

Nancy中视图引擎的细节,可以帮助我们更清晰的理解视图的加载等内容,由于这一块已经有园友讲述过了

在此我就不再重复了

.NET Nancy 详解(三) Respone 和 ViewEngine

分部视图这一块,我主要是讲一下关于Razor(因为个人用的比较多)

用法很简单

@Html.Partial(viewName,modelForPartial)  

是不是跟MVC中的基本一致呢?

我们现在定义两个分部视图,首部_PartialHeader.cshtml和尾部_PartialFooter.cshtml

然后定义一个布局页面_Layout.cshtml

下面编写Module返回一个视图index.cshtml

运行结果

Nancy之区域和分部视图的使用

这个是静态的分部页面,下面我们绑定一下model,也就是在Partial带两个参数

编写一个分部视图_PartialTime.cshtml

在刚才的_Layout.cshtml中添加下面的代码

同时修改HomeModule

运行

Nancy之区域和分部视图的使用

OK了,正是我们所期待的

注:如果不在页面添加@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>

我们的智能提示是不会出现Partial的!!

Partial是通过HtmlHelper来实现的,不过Nancy中的HtmlHelper,可用的类型与MVC相比少了很多。

像 @Html.ActionLink()这些是没有的。

Nancy之区域和分部视图的使用

如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!

作者:Catcher Wong ( 黄文清 )

来源:http://catcher1994.cnblogs.com/

声明:

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果您发现博客中出现了错误,或者有更好的建议、想法,请及时与我联系!!如果想找我私下交流,可以私信或者加我微信。

继续阅读