Asp.Net MVC---Walkthrough
2008-05-30 01:05 Jun1st 阅读(2081) 评论(2) 编辑 收藏 举报Asp.Net MVC---Walkthrough
在上一篇关于Asp.Net MVC的文章中,对Asp.Net MVC作了一个High level的介绍,有兴趣的园友可以看一下这里。概念性的东西讲完了,现在该是动手写点Code的时候了,用原版技术书上的话说就是:Time to get your hands dirty。(文章写到一半,Asp.Net MVC Preview3发布了,所以,本文的的Project也相应的更新Preview 3的了)
创建一个新项目
通过File->New Project->Asp.Net MVC Web Application创建一个新项目:AjaxInMVC。创建Web Application的时候,还会创建一个Test项目,通过这个Test项目就可以实现了TDD了。创建完成的新项目的结构如图:
可以看到,生成的项目文件夹已经有了Controllers, Models和Views。此外,Views中还包括一个Shared, 这个文件夹中存放可以公共访问的页面文件等,如master文件。而在Content中,用来存放诸如javascript、stylesheet之类的文件。
URL Routing
打开Glocal.ascx文件,可以看到在Application_Start这个系统函数中注册了Asp.Net MVC的Route规则:
这是在Preview 3中的新的Routing规则,相比之Preview 2,有了两个新的方法:
l IgnoreRoute: MVC的Routing System将不会处理IgnoreRoute中的URL Pattern
l MapRoute: 把一个新的Routing规则添加到Routes Collection中,而其中的“new { controller = "Home", action = "Index", id = "" }“是此Routing的默认的Controller和Action。
这时的程序是完全可以运行的,只不过几乎什么都没有J
简单的Sample: Lunch Management
先看一下效果图吧:
HTML代码:
Asp.Net MVC使得我们又重新拿回了对页面控件的控制权,但是随之而来的一个副作用就是失去了很多在传统的Asp.net中丰富的控件。我们必须写更多的代码,但是我们拥有了更高的灵活性。
解释一下最下面那句Html.ActionLink, 它使用了.net中最新的Lamda表达式,这么做的好处是所调用的Action:NewUser,是必须要存在的,否则编译时就会出错。而这正式我们所希望的,较之于等到程序运行时才出错。
Controller主要代码:
private LunchDataContext lunchDC = new LunchDataContext();
public ActionResult Index()
{
ViewData["Users"] = lunchDC.GetAllUsers();
return View("Index");
}
到目前位置,Asp.Net MVC的每一个Release对Controller的变化都不小,Preview 2取消了作为Action需要的属性,而默认设置所有的public方法为Action。这一次,Action方法不仅有返回值ActionResult, 而且从controller到view的方法也变为了View。
LunchDataContext是一个LINQ to SQL类,并且通过partial类这一特性添加了一些简单的方法(注意:添加一个独立的类文件,而不是修改IDE生成的类文件,这就是partial的好处之一)
这个页面的功能很简单,添加、显示。但是已经基本上完成View->Controller->Model->Controller->View一个轮回了。之后将添加更多的功能,并希望能实现Ajax。
代码目前写得还是有点乱,等之后实现更多的功能和Refector之后再发了^_^。