网页教学网
 当前位置: 网页教学网 >> 网络编程 >> ASP.NET编程技术 >> ASP.NET下的一个实验MVC的小东西
[ HTML ] [ FW ] [ DW ] [ FP ] [ JS ] [ XML ] [ CSS ] [ 图象 ] [ FLASH ] [ .NET ] [ ASP ] [ JSP ] [ PHP ] [ 数据 ] [ 系统 ] [ 安全 ] [ 素材 ] [ 建站 ] [ 主机 ] [ 入门 ] [ 技巧 ]

ASP.NET下的一个实验MVC的小东西

http://www.webjx.com  更新日期:2007-10-22 16:27  出处:博客园  作者: 懒人居

  星期五下班前一时兴起,对MVC发表了一点看法。后来就想干脆弄个小东西来验证一些自己的想法帮组理清思路。所要源代码的免了,3个小时的急就章实在是乱得可以,既没有好的架构,也没有任何代码质量可言,主要是实现了对MVC的一点想法。所以拿出来大家给参考一下。申明:不是典型的MVC

  在这里我参考了Web.Py的一些做法,首先我们将Url当作一种资源,一个典型的Url,如下:

  http://www.x.com/Index/view/2007/10/21

  我们将从/Index/Topic/2007/10/21开始的的部分看作是有语义的,这里将Index映射到Controller类Index,Topic则表示这一次调用的行为,也就是调用Index类的Topic方法。

  后面的/2007/10/21则是参数。而这些参数作为View方法的参数被传递给Controller,也就是这里Topic方法可以重载,如果找不到参数相对应的方法就直接调用没有参数的Topic方法。

  Index类被作为Controller,至于View,随便了,可以直接用StringTemplate或者其他任何模板引擎,图方便的话直接Redirect到ASPX页面也行。

  使用的方法:

  首先Copy SpectraAction.DLL到bin目录。然后在Web.Config里添加:

<configSections>
    <sectionGroup name="SpectraAction">
      <section name="Common" type="System.Configuration.SingleTagSectionHandler"/>
      <section name="Urls" type="System.Configuration.DictionarySectionHandler"/>
    </sectionGroup>
  </configSections>
  <SpectraAction>
    <Common Base="/TestSpectra" DefaultAction="Proccess" Assembly="" />
    <Urls>
      <add key="/index" value="Controller.Index"/>
    </Urls>
  </SpectraAction>

  在Url里面的项就是注册Url到Controller的映射关系的。Common里的Base定义了Url的基础,因为在很多时候在根下有一些目录比较特殊,为了不影响这些目录,所以设置了这个参数用来设置一个基础来避开。所以这里要从 /TestSpectra之后的部分才开始具备语义。

  然后就是实现Controller.Index这个类:

  1namespace Controller
  2{
  3 public class Index:MasterController
  4 {
  5 public Index()
  6 {
  7 //
  8 // TODO: 在此处添加构造函数逻辑
  9 //
  10 }
  11 public void Proccess()
  12 {
  13 this.AppendText("Test");
  14 }
  15 public void Proccess(string A)
  16 {
  17 this.AppendText("Test"+A);
  18 }
  19 }
  20}

  最后我们在浏览器里输入 http://localhost/TestSpectra/Index

  这个时候输出 Test 因为设置了默认的行为,所以自动调用了Proccess方法。

  如果输入 :

  http://localhost/TestSpectra/Index/Proccess/ActionA/

  这个时候就会调用void Proccess(string A)这个方法,输出了字符串TestActionA

  就是这个样子咯,模型的话随便什么都行,视图的话随便用什么模板引擎都行。

关键词:ASP.NET,实验,MVC
推荐给好友】【关闭】【收藏本文
最新五条评论
查看全部评论
评论总数 0
您的评论
用户名: 新注册) 密 码: 匿名:
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为