基于WebForm实现Front Controller MVC模式
2007-01-21 14:41
204 查看
这段时间利用MonoRail进行WEB应用开发,但在编写VM时缺少了VS.NET IDE提供的特性感觉很不方便;于是就基于传统WebForm的 Page Controllers模块下实现Front Controller模式的开发框。
实现方法就是通过基础的Page Controller进行令命的转发,并执行具体的方法。
传统的Page Controller的WebForm设置:
<%@ 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 Method和WebForm存在隔离因此很多的特性都不能使用(如服务器控件,视图状态等);但UserControl作一下改变还是能够很好地应用在这种模式下。
为数据访问更灵活可以实现一些简单对象数据绑定功能,如:
Codes.OrderSearch search = BindObject<Codes.OrderSearch>("");
由于传统的HTML元素的Name设置不会因服务器控件的生成而改变,因此可以通过命名约束的方式方便实现数据绑定功能。
使用JQuery和框架实现一个简单的无刷新数据查询应用:
下载事例代码
实现方法就是通过基础的Page Controller进行令命的转发,并执行具体的方法。
传统的Page Controller的WebForm设置:
<%@ 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 Method和WebForm存在隔离因此很多的特性都不能使用(如服务器控件,视图状态等);但UserControl作一下改变还是能够很好地应用在这种模式下。
为数据访问更灵活可以实现一些简单对象数据绑定功能,如:
Codes.OrderSearch search = BindObject<Codes.OrderSearch>("");
由于传统的HTML元素的Name设置不会因服务器控件的生成而改变,因此可以通过命名约束的方式方便实现数据绑定功能。
使用JQuery和框架实现一个简单的无刷新数据查询应用:
下载事例代码
相关文章推荐
- 一个简单的基于注解的 Controller (spring 2.5 annotation 方式实现mvc )
- 一个简单的基于注解的 Controller (spring 2.5 annotation 方式实现mvc )
- Struts——基于J2EE 的 web 形式 MVC 模式实现
- 一个简单的基于注解的 Controller (spring 2.5 annotation 方式实现mvc )
- 基于dojo实现mvc 模式下的ajax应用
- asp.net 实现用户登录和注册——基于webform模式
- 2.1、Spring Web MVC是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职
- python编程(基于订阅模式的mvc实现)
- 一步一步重写 CodeIgniter 框架 (7) —— Controller执行时将 Model获得的数据传入View中,实现MVC
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- SpringMVC(12)完结篇 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
- SpringMVC—UrlFilenameViewController控制器实现跳转页面
- asp.net mvc中自行搭建实现工厂模式的spring.net+三层架构(更新)
- 再谈AbstractQueuedSynchronizer2:共享模式与基于Condition的等待/通知机制实现
- Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
- 基于.net 职责链来实现 插件模式
- 通过JQuery调用MVC的Controller方法来实现无刷新操作
- 实现WebForm下面的自动收集对象属性(与MVC下在的UpdateFrom一样)
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- 【出版直播】博客园征途系列,《设计模式——基于C#的工程化实现及扩展》书签制作完成