基于WebForm实现Front Controller MVC模式

       这段时间利用MonoRail进行WEB应用开发,但在编写VM时缺少了VS.NET IDE提供的特性感觉很不方便;于是就基于传统WebForm Page Controllers模块下实现Front Controller模式的开发框。

 

实现方法就是通过基础的Page Controller进行令命的转发,并执行具体的方法。

传统的Page ControllerWebForm设置:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="MVC_Test.WebForm1" %>

 

为了适应Front模式,Inherits统一指向一个命令处理的PageContrller:

<%@ Page Language="C#" AutoEventWireup="true"  Inherits="HFSoft.MVC.FormBase" %>

 

Page相关的Action Method可以通过CustomAttribute的方式进行一个映射:

    public class Roots:HFSoft.MVC.ControllerAdapter

    {

        [HFSoft.MVC.FormMapper("~/default.aspx")]

        public void Default()

        {

          

           

        }

    }

 

由于Action MethodWebForm存在隔离因此很多的特性都不能使用(如服务器控件,视图状态等);但UserControl作一下改变还是能够很好地应用在这种模式下。

 

 

为数据访问更灵活可以实现一些简单对象数据绑定功能,如:

Codes.OrderSearch search = BindObject<Codes.OrderSearch>("");

由于传统的HTML元素的Name设置不会因服务器控件的生成而改变,因此可以通过命名约束的方式方便实现数据绑定功能。

 

使用JQuery和框架实现一个简单的无刷新数据查询应用:


下载事例代码

posted on 2007-01-21 14:41 henry 阅读(518) 评论(2) 编辑 收藏

评论

#1楼 2007-01-22 12:19 找不到感觉的人[未注册用户]

想法不错,只是感觉不够灵活,所有页面都只能继承HFSoft.MVC.FormBase  回复 引用   

#2楼[楼主] 2007-01-22 13:45 henry      

@找不到感觉的人
其实这里的FormBase并不用于扩展,只是用于Action的转发;对于功能的实现是在Action Method进行编写。
以后会扩展出Action Method的CutomAttribute用于处理验证,日志等全局性的功能。
因为在用MonoRail有点不习惯,于是就写这样一个东西试下。
毕竟在编写页面有VS.2005提供帮助和C#2.0语法的支持。
 回复 引用 查看   

导航

公告

昵称:henry
园龄:6年5个月
粉丝:14
关注:0
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

统计

搜索

 
 

常用链接

我的标签

随笔分类

最新评论

推荐排行榜