快速业务通道

快速搞懂ASP.NET MVC

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
meter  defaults
        );
    }
}

MapRoute 方法里的三个参数,分别代表:routes、route name 、URL。其中第一个参数 "Default",代表了项目中的 Default.aspx (不是位于 View 文件夹里)。这个 URL Routing 是为了解决用户直接访问域名 时,会出现找不到文件的情形,所以要采用这个方法,将主页改成 Routing 到 Home/Index 上。因此当您在浏览器的地址栏输入:

http://localhost: 端口号/Default.aspx

http://localhost:端口号

亦会 导至图 2 中的 Views/Home/Index.aspx。

System.Web.Mvc Namespace (MSDN Library, 暂无中文版):

http://msdn.microsoft.com/en- us/library/system.web.mvc.aspx

RouteCollectionExtensions.MapRout e Method:

http://msdn.microsoft.com/en- us/library/dd470521.aspx

ASP.NET MVC Framework (Part 1) (ScottGu 于 2007 年 11 月发表的 blog,图中为 ASP.NET MVC 在 Beta 版时的画 面):

http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net- mvc-framework-part-1.aspx

在图 3 的首页里,当鼠标移到右侧的 hyperlink 时,实际连结的页面名称 (某个 .aspx) 并不会直接显示在浏览器的 地址栏、浏览器下方的信息栏里,因为 request「转向」的运作皆统一由 Controller 处理,亦即由图 2 中 HomeController.cs 里,配置的 System.Web.Mvc.ActionResult 类的 actionName 去指定,因此浏览器的网址仍 会维持 Site.Master (MasterPage) 里的 Html.ActionLink 绑定,所配置的 actionName (即下方两行代码的第二个参数 "Index"、 "About"),而不会如过去 ASP.NET 1.x / 2.0 般,直接在地址栏里 ,显示某一个 .aspx 的页面名称。

以下为 Site.master 的一部分代码 :

<%@ Master Language="C#"  Inherits="System.Web.Mvc.ViewMasterPage" %>

<ul id="menu"> 
    <li><%= Html.ActionLink("Home",  "Index", "Home")%></li>
    <li><%= Html.ActionLink("About",  "About", "Home")%></li>
</ul>

Controller 除了用来控管整个网站的流程转向外, 事实上还能避免大量的代码重复,亦即统一处理一些系统可「共享」的功能,例 如:验证用户身份、输入验证 (validate)、Session 管理,或是像购物网站中 ,当购物车里物品的添加、修改、移除时,任何用户皆相同的「共通逻辑」处理 ;以及要结帐时,去做购物数量、单价相乘的计算动作,或将某个存储购物明细 的 Collection 数据结构对象加入 Session,最后再转向某一个页面 (View)。

总结:

本帖仅是给 .NET 技术人员,作为初步了解 MVC Pattern ,以及 ASP.NET MVC Framework 的入门文章。若有兴趣深入研究的网友,可参 考本帖最下方的「相关文件」,另博客园及网络上已有许多相关的帖子。至于通 用的 MVC 观念,亦可参考坊间 JSP / Struts / J2EE 的网络论坛、相关书籍, 或 Design Patterns (设计模式) 中的「复合模式 (Compound Pattern)」[15] 。

如同 MSDN Magazine 中提到的 [7],ASP.NET MVC 不是用来取代传统 ASP.NET WebForm 的,两者有各自的优点和缺点,而将来的 ASP.NET MVC 还可 能在 UI、控件拖曳、Routing 上持续改进。不过身为一个技术人员,最好能早 点厘清两者的特性与优缺点 [4] [6],以评估是否要深入学习,或在将来的项目 导入;并思考为什么微软要推出这个框架,且还花了至少两年的时间很慎重地去 研发。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号