把MVC架构应用到ASP中去

来源:互联网 发布:windows 禁止ping 编辑:程序博客网 时间:2024/05/16 17:20

这篇文章占位子很久了,今天终于开始写,否则实在对不起那30次网友点击~

炒得热气腾腾的MVC架构啊~有些让我们这些ASP程序员头疼。前段时间去面试,张口问我对MVC的了解,以及我以前是写哪一部分之类的问题云云~~~让我实在是汗颜啊~ASP里面玩儿MVC?现在想想真是傻~

当初占这个位子是因为几个月前写的一个系统,用了一点MVC的意思,所以就写了下来。

废话不多说了,开始简单介绍一下实现。

ASP 3.0 里有两个经常用来动态包含的函数 Server.execute 和 server.transfer,加上一个页面地址就可以在服务器端重载入页面。这两个函数与 Response.Redirect不同的是:后者在客户端而前者在服务器端,故前者不能接收附有QueryString的参数,只能继承于跳转页的 QueryString 和 Form。而两个函数之间的不同是: Execute(str) 相当于调用了一个子过程,将目标页面的代码执行一下再返回当前页面继续执行; Transfer(str) 相当于直接做定向,但是之前的输出仍然保留。

主要利用 Server.execute 来进行页面跳转

 

整个过程如下:

视图   由一个前端页面的JS进行规整,并发送给 ChangeStatus.asp

 | 

控制器   ChangeStatus.asp 读取 Action 属性,并由此判断输入参数合法性、状态的连续性(Select case Action) ,判断后Server.execute 到相关处理页面

模型    下有N个状态更改的操作,对应于不同的状态的不同操作。并进行数据库的更新。

 

基本模型如此。代码因为离职时手误不小心给删了~所以就没有完整代码了,改天奉上一个简单的图形。

写这样的玩意儿时比较头疼,MVC结构本身编码时就比较复杂,这居然在我这个被朋友称为“伪MVC”的架构下都能深深体会,好处也很明显,在某一种状态的处理代码要进行更改时,我只需要更改一个处理页面,在视图页面需要更改时,只更新视图页面和控制页面即可。另外,在前端隐藏了数据处理页面,也能略微提高一些安全(貌似胡说)~~

后期写的时候心无旁骛,游于天地,感觉的确是不错。

不过话又说回来,ASP下终究是不能实现一个标准的MVC的,所以,这样玩儿玩儿可以,不能拿来直接做应用~

原创粉丝点击