星期五下班前一时兴起,对MVC发表了一点看法。后来就想干脆弄个小东西来验证一些自己的想法帮组理清思路。所要源代码的免了,3个小时的急就章实在是乱得可以,既没有好的架构,也没有任何代码质量可言,主要是实现了对MVC的一点想法。所以拿出来大家给参考一下。申明:不是典型的MVC
在这里我参考了Web.Py的一些做法,首先我们将Url当作一种资源,一个典型的Url,如下:
http://www.x.com/Index/view/2007/10/21
我们将从/Index/Topic/2007/10/21开始的的部分看作是有语义的,这里将Index映射到Controller类Index,Topic则表示这一次调用的行为,也就是调用Index类的Topic方法。
后面的/2007/10/21则是参数。而这些参数作为View方法的参数被传递给Controller,也就是这里Topic方法可以重载,如果找不到参数相对应的方法就直接调用没有参数的Topic方法。
Index类被作为Controller,至于View,随便了,可以直接用StringTemplate或者其他任何模板引擎,图方便的话直接Redirect到ASPX页面也行。
使用的方法:
首先Copy SpectraAction.DLL到bin目录。然后在Web.Config里添加:
<configSections>
<sectionGroup name="SpectraAction">
<section name="Common" type="System.Configuration.SingleTagSectionHandler"/>
<section name="Urls" type="System.Configuration.DictionarySectionHandler"/>
</sectionGroup>
</configSections>
<SpectraAction>
<Common Base="/TestSpectra" DefaultAction="Proccess" Assembly="" />
<Urls>
<add key="/index" value="Controller.Index"/>
</Urls>
</SpectraAction>
在Url里面的项就是注册Url到Controller的映射关系的。Common里的Base定义了Url的基础,因为在很多时候在根下有一些目录比较特殊,为了不影响这些目录,所以设置了这个参数用来设置一个基础来避开。所以这里要从 /TestSpectra之后的部分才开始具备语义。
然后就是实现Controller.Index这个类:
1namespace Controller
2{
3 public class Index:MasterController
4 {
5 public Index()
6 {
7 //
8 // TODO: 在此处添加构造函数逻辑
9 //
10 }
11 public void Proccess()
12 {
13 this.AppendText("Test");
14 }
15 public void Proccess(string A)
16 {
17 this.AppendText("Test"+A);
18 }
19 }
20}
最后我们在浏览器里输入 http://localhost/TestSpectra/Index
这个时候输出 Test 因为设置了默认的行为,所以自动调用了Proccess方法。
如果输入 :
http://localhost/TestSpectra/Index/Proccess/ActionA/
这个时候就会调用void Proccess(string A)这个方法,输出了字符串TestActionA
就是这个样子咯,模型的话随便什么都行,视图的话随便用什么模板引擎都行
分享到:
相关推荐
在ASP.NET中,可以使用Entity Framework进行数据库操作,这是一个对象关系映射(ORM)工具,能够方便地将数据库表与.NET类关联,使得代码更简洁、易读。对于复杂的业务逻辑,可以利用ASP.NET的MVC(Model-View-...
大学生是一个时间性很强的群体,比如书,尤其是很多考试类的参考书,可能看完就不再需要,卖废纸又太可惜,因此二手交易是最好的选择,这样既降低了卖方的损失又增加了买方的利益“于人方便,于己方便”。...
asp.net基于三层模式校园二手物品交易网站设计源码+数据库.zip 开发软件: Visual Studio 2010以上 数据库:sqlserver2005以上 开发技术:基于MVC思想和三层设计模式,前台采用bootstrap响应式框架,后台div+css 每当...
- **ASP.NET MVC框架**:通过使用Microsoft提供的ASP.NET MVC框架可以很方便地在.NET环境中实现MVC模式。该框架提供了用于构建Web应用程序的一系列工具和服务。 - **控制器**:处理用户请求并选择正确的视图来响应...
## 开发软件: Visual Studio 2010以上 数据库:sqlserver2005以上 ## 开发技术:基于MVC思想和三层设计模式,...能更好的满足更多的大学生用户的需求。 ## 实体ER属性如下: 用户: 用户名,登录密码,姓名,性别,出生日期
## 开发软件: Visual Studio 2010以上 数据库:sqlserver2005以上 ## 开发技术:基于MVC思想和三层设计模式,...能更好的满足更多的大学生用户的需求。 ## 实体ER属性如下: 用户: 用户名,登录密码,姓名,性别,出生日期
asp.net基于三层模式校园二手物品交易网 开发软件: Visual Studio 2010以上 数据库:sqlserver2005以上 开发技术:基于MVC思想和三层设计模式,前台采用bootstrap响应式框架,后台div+css 每当毕业时这些东西就成了...
开发软件: Visual Studio 2010以上 数据库:sqlserver2005以上 开发技术:基于MVC思想和三层设计模式...能更好的满足更多的大学生用户的需求。 用户: 用户名,登录密码,姓名,性别,出生日期,用户照片,联系电话,邮箱,家庭
明眼人一看就知道这是基于ASP.NET MVC而开发的Web应用程序,使用了Bootstrap。不错,基本答对!需要强调的是,这个博客站点以及后端的RESTful服务,全部都是基于ASP.NET Core完成的,.NET Core运行时版本为1.1.0,...
LocalizationProvider项目是Asp.Net Mvc Web应用程序本地化提供程序。 为您提供以下主要功能: .Net 应用程序的数据库驱动本地化提供程序 通过代码轻松注册资源 支持分层资源组织(在子类的帮助下) v6 有什么新...
ASP.NET MVC或ASP.NET Core中,这通常在Controller中完成。以下是一个简单的例子: ```csharp public ActionResult GetPage(int pageNum = 1) { var pageSize = 10; var skip = (pageNum - 1) * pageSize; var ...