惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
V
Visual Studio Blog
博客园_首页
Last Week in AI
Last Week in AI
J
Java Code Geeks
V
V2EX
博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
爱范儿
爱范儿
B
Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
W
WeLiveSecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
A
Arctic Wolf
S
Security Affairs
博客园 - 聂微东
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
雷峰网
雷峰网
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
罗磊的独立博客
I
Intezer
有赞技术团队
有赞技术团队
Forbes - Security
Forbes - Security
Engineering at Meta
Engineering at Meta
D
Docker
C
Check Point Blog
N
News | PayPal Newsroom
H
Hacker News: Front Page
T
The Blog of Author Tim Ferriss
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
CXSECURITY Database RSS Feed - CXSecurity.com
SecWiki News
SecWiki News
The Last Watchdog
The Last Watchdog
Recorded Future
Recorded Future
量子位
NISL@THU
NISL@THU
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
MongoDB | Blog
MongoDB | Blog
MyScale Blog
MyScale Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
I
InfoQ
Hacker News: Ask HN
Hacker News: Ask HN

博客园 - Jun1st

Application之间共享Master Page ASP.NET AJAX 4的Client-Side Template和DataView ASP.NET AJAX 4的Client-Side Template和DataView 体验ASP.NET4之ClientID 体验ASP.NET 4之URL Routing 使用Extension Methods来使IDataReader更加方便 Custom WCF Configuration File USE HttpRuntime.Cache OVER HttpContext.Current.Cache Make Asynchronous Calls from Page IIS and VS Embedded Local Web Server Integrate jQuery with ASP.NET Data Controls Tech-Ed 2008 上海 ASP.NET MVC的分页和导航 LINQ and Pipeline Pattern Why Would a .Net Programmer Learn Ruby On Rails(翻译) ASP.NET MVC之AJAX Asp.Net MVC 入门篇——Overview Asp.Net 2.0之SqlCacheDependency Security Basics and ASP.NET Support(翻译)
Asp.Net MVC---Walkthrough
Jun1st · 2008-05-30 · via 博客园 - Jun1st

2008-05-30 01:05  Jun1st  阅读(2105)  评论()    收藏  举报

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了。创建完成的新项目的结构如图:

Solution.jpg
可以看到,生成的项目文件夹已经有了
Controllers, ModelsViews。此外,Views中还包括一个Shared 这个文件夹中存放可以公共访问的页面文件等,如master文件。而在Content中,用来存放诸如javascriptstylesheet之类的文件。

URL Routing

打开Glocal.ascx文件,可以看到在Application_Start这个系统函数中注册了Asp.Net MVCRoute规则:

Glocal.jpg
这是在
Preview 3中的新的Routing规则,相比之Preview 2,有了两个新的方法:

l  IgnoreRoute: MVCRouting System将不会处理IgnoreRoute中的URL Pattern

l  MapRoute: 把一个新的Routing规则添加到Routes Collection中,而其中的“new { controller = "Home", action = "Index", id = "" }“是此Routing的默认的ControllerAction

这时的程序是完全可以运行的,只不过几乎什么都没有J

简单的Sample: Lunch Management

先看一下效果图吧:

View1.jpg
HTML
代码:

Code


Asp.Net MVC
使得我们又重新拿回了对页面控件的控制权,但是随之而来的一个副作用就是失去了很多在传统的Asp.net中丰富的控件。我们必须写更多的代码,但是我们拥有了更高的灵活性。

解释一下最下面那句Html.ActionLink 它使用了.net中最新的Lamda表达式,这么做的好处是所调用的ActionNewUser,是必须要存在的,否则编译时就会出错。而这正式我们所希望的,较之于等到程序运行时才出错。

Controller主要代码:

private LunchDataContext lunchDC = new LunchDataContext();

        public ActionResult Index()

        {

            ViewData["Users"] = lunchDC.GetAllUsers();

            return View("Index");

      }

到目前位置,Asp.Net MVC的每一个ReleaseController的变化都不小,Preview 2取消了作为Action需要的属性,而默认设置所有的public方法为Action。这一次,Action方法不仅有返回值ActionResult, 而且从controllerview的方法也变为了View

LunchDataContext是一个LINQ to SQL类,并且通过partial类这一特性添加了一些简单的方法(注意:添加一个独立的类文件,而不是修改IDE生成的类文件,这就是partial的好处之一)

这个页面的功能很简单,添加、显示。但是已经基本上完成View->Controller->Model->Controller->View一个轮回了。之后将添加更多的功能,并希望能实现Ajax

代码目前写得还是有点乱,等之后实现更多的功能和Refector之后再发了^_^