ASP模拟MVC模式编程

编程

大家都知道JAVA里最流行的是MVC模型的编程方式,如果你不知道MVC的概念,可以去网上搜索下,应该会马上找到N多资料。PHP5推出之后,也开始使用MVC模式开发,看来MVC确实有很大的吸引力!
我在平时开发ASP项目的时候,也借鉴了JAVA的这个开发模式,虽然实现的不是很好,但也使代码结构清晰了不少,大大方便了美工修改程序!
下面是我的代码,具体说明看注释。
程序主要实现是后台管理员的操作:添加,删除,修改
分两个程序,adminusers_class.asp,adminusers_gl.asp
相当于JAVA力一个servlet,一个bean!所以没有完全的实现MVC,只是模拟了一下!
adminusers_class.asp代码如下:
<%
rem *****************通用网站管理系统***********************************
rem 页面功能:网站后台管理员管理类
rem @author 蔡晓亮
rem @version 1.0
rem @date 2005-2-22
%>
<!--#include file="conn.asp"-->
<%
'管理员管理类
Class AdminUsersGl
Dim ASO
Private adminuser_name
Private adminuser_password
Private admingroup_id
Private adminuser_isshow
Private adminuser_selfconfig
Private adminuser_realname
'构造函数开始
Private Sub Class_Initialize
Set ASO=Server.CreateObject("Adodb.RecordSet")
End Sub
'析构函数开始
Private Sub Class_Terminate
Err.Clear
Set ASO=Nothing
End Sub

'添加管理员
Public Function AdminUsers_Add(adminuser_name,adminuser_password,admingroup_id,adminuser_realname,adminuser_selfconfig,adminuser_isshow,adminuser_language)
sql="select adminuser_name from ce_adminusers where adminuser_name='"&adminuser_name&"'"
ASO.Open sql,conn,1,3
if ASO.RecordCount<>0 then
Response.Redirect("messages.asp?mess_name=DATA_ADD_FAILURE&back_page=adminusers_gl.asp?action=add")
end if
if ASO.RecordCount=0 then
ASO.Close
sql="insert into ce_adminusers(adminuser_name,adminuser_password,admingroup_id,adminuser_realname,adminuser_selfconfig,adminuser_isshow,adminuser_language) values('"&adminuser_name&"','"&adminuser_password&"',"&admingroup_id&",'"&adminuser_realname&"','"&adminuser_selfconfig&"','"&adminuser_isshow&"','"&adminuser_language&"')"
Response.Write(sql)
ASO.Open sql,conn,1,3
Response.Redirect("messages.asp?mess_name=ADD_SUCCESS&back_page=adminusers_gl.asp?action=add")
ASO.Close
end if
End Function

'取得某管理员信息
Public Function AdminUsers_Xx(adminuser_id)
sql="select adminuser_id,adminuser_name,adminuser_password,admingroup_id,adminuser_isshow,adminuser_selfconfig,adminuser_language,adminuser_realname from ce_adminusers where adminuser_id="&adminuser_id
ASO.Open sql,conn,1,3
if ASO.RecordCount=0 then
Response.Redirect("messages.asp?mess_name=GET_Xx_FAILURE&back_page=adminusers_gl.asp?action=list")
else
adminuser_name=ASO("adminuser_name")
adminuser_password=ASO("adminuser_password")
admingroup_id=ASO("admingroup_id")
adminuser_isshow=ASO("adminuser_isshow")
adminuser_selfconfig=ASO("adminuser_selfconfig")
adminuser_language=ASO("adminuser_language")
adminuser_realname=ASO("adminuser_realname")
end if
ASO.close
End Function

'修改某管理员
Public Function AdminUsers_Modideal(adminuser_id,adminuser_name,adminuser_password,admingroup_id,adminuser_isshow,adminuser_selfconfig,adminuser_language,adminuser_realname)
sql="update ce_adminusers set adminuser_name='"&adminuser_name&"',adminuser_password='"&adminuser_password&"',admingroup_id="&admingroup_id&",adminuser_isshow='"&adminuser_isshow&"',adminuser_selfconfig='"&adminuser_selfconfig&"',adminuser_language='"&adminuser_language&"',adminuser_realname='"&adminuser_realname&"' where adminuser_id="&adminuser_id
response.Write(sql)
ASO.Open sql,conn,1,3
Response.Redirect("messages.asp?mess_name=MODIFY_SUCCESS&back_page=adminusers_gl.asp?action=list")
ASO.Close
End Function

'取得管理员列表
Public Function AdminUsers_List()
sql="SELECT ce_admingroups.admingroup_name, ce_adminusers.adminuser_id,ce_adminusers.adminuser_name, ce_adminusers.adminuser_logintimes, ce_adminusers.adminuser_isshow FROM ce_admingroups INNER JOIN ce_adminusers ON ce_admingroups.admingroup_id = ce_adminusers.admingroup_id"
ASO.Open sql,conn,1,3
while not ASO.eof
if ASO("adminuser_isshow")="Y" then
show="是"
else
show="否"
end if
response.write"<tr><td align=right class=td1 width=27% height=25><p align=center>"&AS

时间: 2025-01-20 09:49:16

ASP模拟MVC模式编程的相关文章

asp.net mvc模式下 表格的绘制

问题描述 目前有几种方案:1.控制器形成json串,供前台U表格组件调:2.形成视图modal,即1个表做1个modal,然后前台循环modallist3.控制器直接形成table串大家帮忙分析下,什么才是最好的方案呢或者其他更好的办法? 解决方案 解决方案二:mvc情况下,如果是ajax请求,那可以找js插件如果用model的方式,那就是拼接html至于什么是最好的方式,根本没有--如果你需要ajax刷新,那明显整个都ajax最好,如果加载完后就不会变化,那model的方式更佳解决方案三:一般

[求助]看《asp.net mvc高级编程》有几个地方不懂

问题描述 第三章:视图3.4视图模型视图通常需要显示各种没有直接映射到域模型的数据.例如,可能需要视图来显示单个商品的详细信息.有时在同一视图上也需要显示商品附带的其他信息,比如当前登录系统的用户名.该用户是否有权编辑商品等.把与视图主模型无关的数据存放在ViewBag属性中,可以很容易的实现这些数据在视图中的显示,而且也为在视图中显示数据提供了一个灵活的方法.这里的映射到域模型的数据是什么东西呀?与视图住模型无关的数据,主模型有时啥?难道是那个View.Model? 解决方案 解决方案二:就是

ASP.NET MVC涉及到的5个同步与异步,你是否傻傻分不清楚?[下篇]

关于ASP.NET MVC对请求的处理方式(同步或者异步)涉及到的五个组件,在<上篇>中我们谈了三个(MvcHandler.Controller和ActionInvoker),现在我们来谈余下的两个,即ControllerDescriptor和ActionDescriptor,这五个组件的执行并非孤立的,而是具有议定的关系.相信读者认真阅读了这两篇文章后,会对整个请求的处理方式有一个深刻的理解. 四.ControllerDescriptor的同步与异步 如果采用ControllerAction

ASP.NET MVC以ModelValidator为核心的Model验证体系: ModelValidator

旨在为目标Action方法的执行绑定输入参数的Model绑定过程伴随着对Model的验证.借助相应的验证特性,我们可以直接以声明的方式在Model类型上定义验证规则,这些规则将会作为Model元数据的一部分.具体在Model绑定过程中,ModelBinder通过ValueProvider为Model对象的某个属性提供相应属性值之后,会根据定义在基于该属性的Model元数据的验证规则实施验证.ASP.NET MVC的整个Model验证系统以组件ModelValidator为核心,或者说Model对

ModelBinder:ASP.NET MVC Model绑定的核心

Model的绑定体现在从当前请求提取相应的数据绑定到目标Action方法的参数.通过前面的介绍我们知道Action方法的参数通过ParameterDescriptor来描述,ParameterDescriptor的BindingInfo属性表示的ParameterBindingInfo对象具有一个名为ModelBinder的组件用于完成针对当前参数的Model绑定.ModelBinder可以看成是整个Model绑定系统的核心,我们先来认识这个重要的组件. 一. ModelBinder 用于进行M

ASP.NET MVC以ValueProvider为核心的值提供系统 三

ValueProviderFactory 在ASP.NET Model绑定系统中,用于提供数据值的ValueProvider对象通过ValueProviderFactory来创建.在ASP.NET MVC应用编程接口中,ValueProviderFactory继承自ValueProviderFactory类.本篇文章只要介绍基于ValueProviderFactory的ValueProvider的提供机制,以及如何通过自定义ValueProviderFactory实现我们需要的数据值的绑定方式.

ASP.NET MVC三个重要的描述对象:ParameterDescriptor

Model绑定是为作为目标Action的方法准备参数列表的过程,所以针对参数的 描述才是Model绑定的核心.在ASP.NET MVC应用编程接口中,服务于Model绑定的 参数元数据通过ParameterDescriptor类型来表示,而ActionDescriptor的 GetParameters方法返回的就是一个ParameterDescriptor数组. 如下面的代码片断所示,ParameterDescriptor同样实现了 ICustomAttributeProvider接口提供应用在

ASP.NET MVC三个重要的描述对象:ControllerDescriptor

ASP.NET MVC应用的请求都是针对某个Controller的某个Action方法,所以对 请求的处理最终体现在对目标Action方法的执行.而Action方法具有相应的参数 ,所以在方法执行之前必须根据相应的规则从请求中提取相应的数据并将其转换 为Action方法参数列表,我们将这个过程称为Model绑定.在ASP.NET MVC应用编 程接口中,Action方法某个参数的元数据通过ParameterDescriptor表示,而两个 相关的类型ControllerDescriptor和Ac

ASP.NET MVC以ValueProvider为核心的值提供系统: NameValueCollectionValueProvider

在进行Model绑定过程中,需要根据基于Action方法参数的绑定上下文从请求数据中提取相应的数据以提供相应的数据.具体来说,Model绑定的数据具有多个来源,可能来源于Post的表单或者JSON字符串,或者来源于当前的路由数据,也可能来源于请求地址的插叙字符串.ASP.NET MVC将这种基于不同数据来源的数据获取/提供机制实现在一个叫做ValueProvider的组件中.[本文已经同步到<How ASP.NET MVC Works?>中] 目录 一.IValueProvider与Value