• 利用wojilu框架仿一个网站的全过程(Step by Step利用wojilu框架开发网站系列二 附源码)


    被仿的网站和仿照后的网站

      被仿的网站-易读 

      仿照后的网站-我读 

      仿这个网站的目的:为了实践一下新学习的轻量级asp.net web开发框架[我记录] ,该网站比较简单,适合入门。  

    实现章节

       章节部分,原网站实现成3列,自己要实现一个和它一模一样的效果。 

      

      原网站章节部分网页的部分源码如下:

      

    View Code
    <TABLE WIDTH=900px ALIGN=CENTER cellpadding="0" cellspacing="0" border="0"><TR><TD width=33% valign=top><a href='read_213198_12131.html' >第1节</A><BR><a href='read_213201_12131.html' >第4节</A><BR><a href='read_213204_12131.html' >第7节</A><BR></td><TD width=33% valign=top><a href='read_213199_12131.html' >第2节</A><BR><a href='read_213202_12131.html' >第5节</A><BR></td><TD width=33% valign=top><a href='read_213200_12131.html' >第3节</A><BR><a href='read_213203_12131.html' >第6节</A><BR></td></TR></TABLE>


        提取出中间循环的部分,因为要分成3列,于是自己做了3个循环节,模板视图部分的代码如下:

    View Code
    <TABLE WIDTH=900px ALIGN=CENTER cellpadding="0" cellspacing="0" border="0">
    <TR>

    <TD width=33% valign=top>
    <!-- BEGIN list1 -->
    <a href="#{a.ShowLink}">#{a.Title}</A><BR>
    <!-- END list1 -->
    </td>
    <TD width=33% valign=top>
    <!-- BEGIN list2 -->
    <a href="#{a.ShowLink}">#{a.Title}</A><BR>
    <!-- END list2 -->
    </td>
    <TD width=33% valign=top>
    <!-- BEGIN list3 -->
    <a href="#{a.ShowLink}">#{a.Title}</A><BR>
    <!-- END list3 -->
    </td>
    </TR></TABLE>

      控制器中的代码如下:

      

        public void Show(int id)
    {

    List<ArticleSection> recent = ArticleSection.find("articleId=" + id + " order by SectionNo asc").list();

    IBlock block1 = getBlock("list1");
    IBlock block2 = getBlock("list2");
    IBlock block3 = getBlock("list3");

    int nIndex = 0;
    ArticleSection[] asArray = recent.ToArray();
    foreach (ArticleSection a in recent)
    {
    nIndex++;
    if (nIndex % 3 == 1)
    {
    block1.Set("a.Title", "" + nIndex.ToString() + "");
    block1.Set("a.ShowLink", to(new ArticleSectionController().Show, a.Id));
    block1.Next();
    }
    else if(nIndex % 3 == 2)
    {
    block2.Set("a.Title", "" + nIndex.ToString() + "");
    block2.Set("a.ShowLink", to(new ArticleSectionController().Show, a.Id));
    block2.Next();
    }
    else if(nIndex % 3 == 0)
    {
    block3.Set("a.Title", "" + nIndex.ToString() + "");
    block3.Set("a.ShowLink", to(new ArticleSectionController().Show, a.Id));
    block3.Next();
    }
    }

    }

    实现上一页,下一页及返回目录

       内容显示部分,原网站下方有一个上一页,下一页的导航,自己要实现一个和它一模一样的效果。 

      视图部分很简单,设置上一页,下一页,返回目录链接变量,代码如下:

      

    View Code
    <TABLE WIDTH=90% ALIGN=CENTER>
    <TR><TD>
    <TABLE WIDTH=100%>
    <TR>
    <TD >
    <B>#{a.Title}</B><br>
    </TD>
    <TD WIDTH=250 ALIGN=RIGHT valign=top>
    <span id="mmad1">&nbsp;</span>
    </TD>
    </TR></TABLE>

    </TD></TR>
    <TR><TD CLASS=ART>

    #{a.SectionContent}

    </TD></TR></TABLE>
    <TABLE WIDTH=950 ALIGN=CENTER cellpadding="0" cellspacing="0" border="0">
    <TR><TD WIDTH=32% ALIGN=RIGHT>
    <a href="#{a.LastLink}">上一节</a></TD><TD WIDTH=20% ALIGN=CENTER>
    <a href="#{a.AblumLink}">目录</a></TD><TD WIDTH=48% ALIGN=LEFT>
    <a href="#{a.NextLink}">下一节</a></TD></TR></TABLE>

      控制器部分也很简单,首先找到该篇文章id,同时生成上一篇文章和下一篇文章的链接,填充到视图的对应变量中,代码如下:

         public void Show(int id)
    {

    ArticleSection c = ArticleSection.findById(id);
    set("a.Title", c.article.Title);
    set("a.SectionContent", c.SectionContent);

    List<ArticleSection> recent = ArticleSection.find("articleId=" + c.article.Id + " order by SectionNo asc").list();
    ArticleSection[] asArray = recent.ToArray();
    int nIndex = 0;

    foreach (ArticleSection a in recent)
    {

    if (a.Id == id)
    {
    set("a.LastLink", to(new ArticleSectionController().Show, asArray[nIndex > 0 ? nIndex - 1 : nIndex].Id));
    set("a.AblumLink", to(new ArticleController().Show, a.article.Id));
    set("a.NextLink", to(new ArticleSectionController().Show, asArray[nIndex == asArray.Length - 1 ? nIndex : nIndex + 1].Id));
    break;
    }

    nIndex++;

    }
    }


      其余的代码就不一一列举了,是一些后台管理的部分,文章和章节的增删查改,大家参考附件中的源码吧。

    MVC方式开发网站的心得,与Winform开发方式类比

      开发一个网站,首先当然要先分析业务需求;业务需求有了,需要考虑如何划分页面的职责,某一页面上要显示哪些内容,显示哪些链接到其他页面的链接;而当每个链接到其他页面的链接被点击的时候,即进入到对应的controller的某个action之中。与Winform开发做类比的话,这里的链接相当于按钮,点击链接进入到相应的controller的某个action中相当于点击按钮触发事件处理函数,而action返回的新视图相当于winform中弹出一个新的对话框,上面又包含新的按钮。

      源码下载 

  • 相关阅读:
    香港的困境
    美国的制度
    媒体行业
    张首晟生前最著名演讲:这几句话可以总结人类所有知识
    印度的发展
    中国互联网发展解读
    cnblogs博客使用LaTeX公式
    Stanford CS229 Machine Learning by Andrew Ng
    强化学习在业界的实际应用
    AUC计算方法
  • 原文地址:https://www.cnblogs.com/xchsp/p/wojilu_step_by_step_demo_2.html
Copyright © 2020-2023  润新知