• 《N2CMS实例教程》第四讲:Article Template Page


        这一节我们创建一个模板页—Article Page,我们先看看这个页都包含哪些内容,如图1所示。

    image
    图1

        从图中我们可以看出,Article包括Title、Published Date、User name、Text等四个属性和一个Edit action,Comment将在下一节介绍,这一节我们先学习如何完成Article内容部分,先在Items/Pages文件下创建一个ArticlePage类,从TextPage类继承,为ArticlePage类添加PageDefinition特性和MvcConventionTemplate特性,类似图2,PageDefinition特性是用来告诉N2后台编辑器这是一个可以编辑的页,MvcConventionTemplate特性是告诉N2 aspx文件在Views下的哪个文件夹,这里我们指定为Article。

    image  
    图2

        在Views文件夹下新建一个名为Article的文件夹,然后在Article文件夹下新建一个Index.aspx文件,将其内容更改为图3所示的内容。

    image 
    图3

        这个页使用N2.Web.Mvc.N2ViewPage<ArticlePage>类来管理,其中泛型参数ArticlePage,就是我们上一步建的ArticlePage类了,在这个页面里我们就要使用它了,Content1是用来替换Article内容的,先把Article.html页中<div class="post">以及div里的内容复制到Content1里,然后title换成<%=Model.Title %>,published date换成<%=Model.Published.Value.ToString("MMMM dth, yyyy") %>,user name换成<%=Model.SavedBy %>,text换成<%=Model.Text %>,其中Model是N2.Web.Mvc.N2ViewPage<T>类的一个属性,这个属性的类型就是ArticlePage,所以我们才能得到这些属性,这些属性都是从TextPage类继承而来的。代码如图4所示。

    image 
    图4

        我们的类已经有了,页面也创建完成了,下面运行一下看看效果。

        可是得怎么访问这个页呢?

        对了,这是一个模板页,那说明它是一个框框,还不是一个真正的实体,得需要我们创建实体,好,进入N2后台编辑界面,访问路径类似http://localhost:55540/edit/,输入用户名和密码后,在Home节点右键“New”一个类型为Article Page的页,输入Tilte、Main text信息,我将Article.html里的内容输入到这里,如图5所示。

    image  
    图5

        单击Save and publish按钮查看一下效果,跟Article.html一模一样!(图6)

    image 
    图6

        这样,我们就完成了一个简单的模板页,你可以使用这个模板页添加更多Article信息。关于Edit操作这里不做讲解,有兴趣的朋友可以研究一下。

        源码下载:Greenygrass_Code_3.zip

    小结

        能过本节学习,我们学会了如何创建一个模板页,首先要添加了个XXXPage的类,为类添加PageDescription特性,指明它是一个可编辑的模板页,在定义一个aspx页,设计布局,并邦定XXXPage类中的属性以显示信息。

    下节预告

        下一节我们将为ArticlePage页添加Comment功能,我们学习如何定义控件和将其添加到Zone中。

    -----------------------------------

    《N2CMS实例教程》

    前言

    第一讲:开发环境

    第二讲:N2CMS如何工作

    第三讲:Site Master

    第四讲:Article Template Page

    第五讲:Comments Panel

    第六讲:Category Template Page

    第七讲:Category List Panel

    第八讲:Archive Template Page

    第九讲:Archive List Panel

    第十讲:Home Page

    第十一讲:后记

    作者:薛.NET
    出处:http://xuemingfeng.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    第十七节(is-a 、is-like-a 、has-a,包和 import )
    第十六节(Object类(toString() 、finalize、equals方法)
    第十五节(多态,接口和抽象类的区别,类之间的关系)
    第十四节(接口(行为))
    第十三节(super关键字、final关键字、抽象类))
    .gitignore立即生效
    find & xargs 参数传递
    zsh: command not found: j
    将文件转化为源代码
    C读文件相关的调用
  • 原文地址:https://www.cnblogs.com/xuemingfeng/p/1544736.html
Copyright © 2020-2023  润新知