ASP 仿 Monorail MVC 的实现思路
关键文件:
/vd_init.asp :处理请求,并反射执行同名function
/inc_controllers.asp :控制器,该文件中的每个Function,对应一个同名的view,
例:function articleList(){} 对应 articleList.asp
/articleList.asp :表现层的一个页面,同上,它的控制器是 function articleList(){},在inc_controllers.asp中
由于asp没法控制handler,所以请求的文件必须物理存在
/inc_model.asp 模型层(可选)
/articleList.asp 要 <!--#include virtual="/inc_controllers.asp"-->
/inc_controllers.asp 要 <!--#include virtual="/inc_init.asp"-->
vd_init.asp代码:
/inc_controllers.asp 控制器代码示例:
2
3 Sql="select ID,Title from Article where ClassID="&ClassID&" order by id desc"
4 set rsPA=conn.execute(Sql)
5 PropertyBag "rsPA",rsPA
6 PropertyBag "title",ClassName
7 '用过Monorail的朋友,这里应该很熟悉了,写法稍有变动
8 '函数:PropertyBag 的实现在:/vd_init.asp中
9
10 end function
/articleList.asp
2 <html>
3 <head>
4 <title><%=vd.title%></title>
5 </head>
6 <body>
7 <%
8 while not vd.rsPA.eof
9 %>
10 <div><%=vd.rsPA("Title")%></div>
11 <%
12 vd.rsPA.movenext
13 wend
14 %>
15 </body>
16 </html>
17
代码解读:
vd为一个全局对象,否则在controller中的function以外就调用不到了,它起到和Monorail中的${Var}同样的作用。
因为view层直接使用脚本,没有使用NVelocity之类型模板引擎,所以:
<%=vd.title%>同:${title}
view层所使用的数据,由PropertyBag函数动态添加到vd对象中,由于js在对象处理方面非常灵活,所以该函数由服务端javascript实现。
再往下,由Script_Name得到当页面文件的名字,也就是view层的文件名,
假设文件名是:articleList.asp,则得到函数名:articleList,并通过execute('articleList()') 动态执行。(反射)
本身view层也是asp文件,所以它可以使用所有asp中可以用的东西
至次,分层成功
上传中只使用了两层,仅为演示实现思路。
转载于:https://www.cnblogs.com/BugLiu/archive/2009/07/21/1527702.html
ASP 仿 Monorail MVC 的实现思路相关推荐
- 学习MonoRail MVC
从留言簿开始,学习MonoRail MVC(一) (来自:http://fuyun.cnblogs.com/) 关注MVC开发Web应用程序是看到<一个.NET的MVC Web框架>这 ...
- asp.net core mvc权限控制:分配权限
1,分配权限到角色:Microsoft.AspNetCore.Identity.EntityFrameworkCore中提供了RoleManager类,类中提供了把权限分配到角色的方法: Task&l ...
- 从零开始实现ASP.NET Core MVC的插件式开发(五) - 插件的删除和升级
标题:从零开始实现ASP.NET Core MVC的插件式开发(五) - 使用AssemblyLoadContext实现插件的升级和删除 作者:Lamond Lu 地址:https://www.cnb ...
- 从零开始实现 ASP.NET Core MVC 的插件式开发(九) - 如何启用预编译视图
标题:从零开始实现 ASP.NET Core MVC 的插件式开发(九) - 升级.NET 5及启用预编译视图 作者:Lamond Lu 地址:https://www.cnblogs.com/lwql ...
- 从零开始实现 ASP.NET Core MVC 的插件式开发(七) - 问题汇总及部分问题解决方案...
标题:从零开始实现 ASP.NET Core MVC 的插件式开发(七) - 问题汇总及部分问题解决方案 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/ ...
- 从零开始实现ASP.NET Core MVC的插件式开发(三) - 如何在运行时启用组件
标题:从零开始实现ASP.NET Core MVC的插件式开发(三) - 如何在运行时启用组件 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/112 ...
- 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图...
如果你使用过一些开源CMS的话,肯定会用过其中的的插件化功能,用户可以通过启用或者上传插件包的方式动态添加一些功能,那么在ASP.NET Core MVC中如何实现插件化开发呢,下面我们来探究一下. ...
- asp.net core mvc实现伪静态功能
在大型网站系统中,为了提高系统访问性能,往往会把一些不经常变得内容发布成静态页,比如商城的产品详情页,新闻详情页,这些信息一旦发布后,变化的频率不会很高,如果还采用动态输出的方式进行处理的话,肯定会给 ...
- 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用ApplicationPart动态加载控制器和视图
目录 前言 什么是ApplicationPart? 创建项目 添加控制器和视图 如何动态加载插件中的控制器?# 如何加载组件的预编译Razor视图? 最终效果 总结 源代码:https://githu ...
最新文章
- 使用TensorRT集成推理inference
- 语义分割--Deep Dual Learning for Semantic Image Segmentation
- 哈夫曼树--顺序结构(建立、编码、解码)
- Dynamics CRM2013/2015 检索实体属性的两种方式
- 计算机组成原理译码器选择,计算机组成原理第三章习题参考解析.doc
- python交叉编译的配置 脚本怎么写_如何写一个简单的脚本并配置
- selenium自动化测试——常见的八种元素定位方法
- C#经典算法实践,回顾往生,更是致敬《算法导论》
- npm和angular_如何开发,使用和发布Angular库到NPM
- 比较好的电脑系统_效果好的筛分移动破碎站有优惠吗?
- 6-4-JSP隐式对象
- canvas绘制视频封面
- Android的Intent系统调用
- 控制继电器(esp32+继电器)
- python题目-完数
- i511260h参数 i5 11260h评测
- 颜色代码表(#号开头)
- 查询三方jar包漏洞
- android nexus 10 刷机,谷歌Nexus 10 recovery卡刷rom 刷机教程
- 债券融资和股权融资区别,债券融资的优缺点是什么
热门文章
- Unity Shader 表面着色器边缘光(Rim Lighting)二
- 怎么清除火狐浏览器的cookie?
- mysql8.0怎么样_MySQL8.0初体验
- 分享!史上最全的STM32库....
- Django之博客系统搭建一
- Java+Servlet+JSP实现Web宠物诊所管理系统
- @Validated使用
- AFNetworking源码学习 1
- “冰箱强行播广告关不了”上热搜,网友:买了块广告牌回家
- JAVAWEB_基础面试题