基于WebForm实现Front Controller MVC模式
这段时间利用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和框架实现一个简单的无刷新数据查询应用:
下载事例代码