博文
从零开始学习 ASP.NET MVC 1.0 (二) 识别URL的Routing(2011-04-23 11:26:00)
摘要:从零开始学习 ASP.NET MVC 1.0 (二) 识别URL的Routing组件
一.摘要
本篇文章从基础到深入的介绍ASP.NET MVC中的Routing组件. Routing翻译过来是"路由选择", 负责ASP.NET MVC的第一个工作:识别URL, 将一个Url请求"路由"给Controller.
二.承上启下
第一篇文章中我们已经学会了如何使用ASP.NET MVC, 虽然其中还有很多的细节没有深入了解, 但是对基本的处理流程已经有了认识:来了一个Url请求, 从中找到Controller和Action的值, 将请求传递给Controller处理. Controller获取Model数据对象, 并且将Model传递给View, 最后View负责呈现页面.
而Routing的作用就是负责分析Url, 从Url中识别参数, 如图:
这一讲就让我们细致的了解System.Web.Routing及其相关的扩展知识.
三.Routing的作用
第一讲中实例的首页地址是: localhost/home/index
我们发现访问上面的地址, 最后会传递给 HomeController中名为index的action(即HomeController类中的index方法).
当然服务器端不会自己去实现这个功能, 关键点就是在Global.asax.cs文件中的下列代码:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { ......
ASP.NET MVC 1.0 (一) 开天辟地入门篇(2011-04-23 11:24:00)
摘要:
从零开始学习ASP.NET MVC 1.0 (一) 开天辟地入门篇
《从零开始学习ASP.NET MVC 1.0》 文章导航
(一) 开天辟地入门篇
(二) 识别URL的Routing组件
(三) Controller/Action 深入解析与应用实例
(四) View/Model 全解
(五) ViewEngine 深入解析与应用实例
一.摘要
随着ASP.NET MVC 1.0版本的正式发布, 我将本系列文章也更新到了1.0, 对于已经发表的文章我都会根据1.0版本重新编辑. 希望本系列文章能打给大家帮助.
二.前言
ASP.NET MVC是微软官方提供的开源MVC框架. 在经过了漫长的preview和2个RC版本后, 终于发布了1.0版本.其实从RC开始ASP.NET MVC的核心代码就已经趋于稳定.所以现在开始学习ASP.NET MVC是一个很好的时间点.学习的早,而且不用担心知识过时.
本系列教程是我在学习ASP.NET MVC时的总结, 比如虽然我学习老赵的视频教程, 但是因为版本较老, 一般我都要从最新版本上进行知识的校验与升华, 然后将最后的精华总结出来写成文字. 现在还在不断的学习, 不断地写作.希望大家喜欢本系列文章, 我将用精益求精的精神写本系列文章.
三.Hello ASP.NET MVC
现在开始跟着我一步一步学习ASP.NET MVC.在什么都不知道之前, 还是让我们先下载一个ASP.NET MVC程序. 当看到程序运行后, 我的心才会踏实很多.
首先去ASP.NET MVC的官网看看:
http://www.asp.net/mvc/
这里我们可以下载ASP.NET MVC的安装文件.目前最新版本是1.0,另外我们可以在CodePlex上获取源代码:
http://www.codeplex.com/aspnet
在官网上下载ASP.NET MVC安装文件, 一路回车完成安装. 启动VS2008 SP1(不是VS2008?不是SP1?作为一个专业的IT人士,水平可以菜,软件咱一定要用新的!去找个新版本吧!),点击新建,在Web中可以找到:
点击确定即创建了一个默认的MVC项目.同时还会创建一个测试项目. 这些我现在都不懂也不关注, 直接将Web项......
.net静态构造函数与构造函数有什么区别(2011-04-23 10:31:00)
摘要:1、静态构造函数不能带任何参数,一个类只能有一个静态构造函数
构造函数参数数目不定,可以根据需求设定。一个类可以有多个构造函数(重载)
2、静态构造函数的执行具有不定性,你只能确保静态构造函数在第一次调用类的成员之前执行,并且静态构造函数至多执行一次。
构造函数:只要创建类的实例,都会执行,具有时间的可把握性。
3、静态构造函数没有修饰符
注意:无参数的实例构造函数可以在类中与静态构造函数安全共存。尽管参数列表是相同的,但这并不茅盾,因为静态构造函数是在加载类时执行的,而实例构造函数是在创建实例时执行,所以构造函数的执行的不会有冲突的。
文章来自学IT网:http://www.xueit.com/html/2009-05/21_1797_00.html......
个税增减月入1.9万成分水岭 月入2万个税增50元(2011-04-21 11:27:00)
摘要:
从上表可以看出,如果每个月收入在1.9万元,应缴的个人所得税不增不减,是3025元。 如果你的收入低于这个数,比如月收入1万元,每个月要缴的税会减少350元;如果你的收入超过1.9万元,个税不减反增。比如,月收入2万元的人,个税将增加50元。数据来自财新网制图东方早报赵佳峰
月入1.9万内最多减税350元
个税法修正案草案昨起审议免征额提至3000元税率从9级减为7级
扣除三险一金后月入1.9万成个税增减分水岭,月入7500元至1万元人群减税最多,月入2万元增50元,三个步骤算清新个税
月入2万个税增加50元
个税是增是减月入1.9万成分水岭专家称对高收入人群影响有限
只需三个步骤算清你的“新个税”
第一步:在上表中,找到自己月薪相对应的个税税率、速算扣除数。
第二步:算出自己的应纳税额=本人月收入-个税“免征额”3000元。
第三步:算出自己的应纳个税=应纳税额×对应的税率-速算扣除数。
举例:
某员工扣除“三险一金”后的月收入为10000元,位于上表中的第3档。对应的税率为20%,速算扣除数为525元:
应纳税额为(10000元-个税免征额3000元)=7000元
个税=7000×20%-525元=875元。
个税是增还是减月入1.9万成分水岭
东方网4月21日消息:据《东方早报》报道,呼唤已久的个人所得税新方案昨日浮出水面,免征额拟从2000元提高到3000元,距此前不少人呼吁的5000元相差甚远。
此次还同时调整了工薪所得税的税率,减少了中低收入者的纳税额,提高了高收入者的纳税额,个税“公平调节器”的作用得以重现。
据财新网计算,本次减税最多的是月收入7500-10000元的人群,每个月能减税350元。同时,月收入低于1.9万元的个税将减少,而高于1.9万元的个税将增加。
个税法修正四处
全国人大常委会昨日初次审议个税法修正案草案,财政部部长谢旭人称,此次修正涉及四点。
1.提高个税工资薪金所得减除标准(即免征额):拟由现在的每月2000元上调至每月3000元。自1994年现行个税法施行以来,已先后两次调整免征额:2006年1月1日起由每月800元提高到1600元,2008年3月1日起......
ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第四篇(2011-04-20 11:23:00)
摘要:摘要
本文将完成我们“MVC公告发布系统”的公告发布功能,以此展示在ASP.NET MVC中如何传递处理表单的数据。
前言
通过前几篇文章,我们已经能比较自如的使用ASP.NET MVC来呈现页面和数据了。但是,有一个大问题没有解决:如何处理表单数据。例如,我们将要实现的公告发布功能,用户肯定是在某个表单页面输入标题、正文等内容,而后提交,然后表单数据要被传递到相应的地方交由业务逻辑组件处理。
在传统的ASP.NET下,使用的是Model1模式,每个aspx页面有一个同名的aspx.cs文件,当提交表单时,默认数据被提交到这个同名aspx.cs文件中某个方法下处理。但是,在ASP.NET MVC中,这种方法不能用了,因为我们换用了Model2模式,不能再用同名代码文件来处理aspx的提交请求(但是这不表明同名代码文件就没有用了,实际上,它依然会被执行,但是我们不提倡在里面处理任何逻辑,但是,有时会利用它进行一些初始化操作。),那么应该怎么做呢?不多讲,我们以例子说明问题。
下面我们一步一步完成“MVC公告发布系统”的公告发布功能,等做完这个功能,上面的问题就明了了。
先修改一个错误...
这里,首先要像大家道歉,因为在第一篇里,我犯了一个错误。就是在公告的实体类AnnounceInfo中少了一个属性。现在,我们在AnnounceInfo中添加一个叫Cateogry的属性,类型为int,它用来指明这个公告属于哪个分类。
对于这个错误,我十分抱歉。
建立输入信息页面
下面,正式开始我们的工作。首先,我要建立一个页面,用来让用户输入公告信息。而我们知道,在ASP......
ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇(2011-04-20 11:23:00)
摘要:摘要
本文对ASP.NET MVC的全局运行机理进行一个简要的介绍,以使得朋友们更好的理解后续文章。
前言
在上一篇文章中,我们实现了第一个ASP.NET MVC页面。对于没有接触过这个框架的朋友来说,可能对有些地方会迷惑,所以这篇文章我将通过图示配合文字的方法,站在全局的角度介绍一些ASP.NET MVC的运行机制,这样可以帮助朋友们更好的理解后续文章。^_^
全局
首先我们来看一副图片,由于这幅图是我自己画的,不是摘自微软官方,所以如果有什么不到位的地方还望海涵!
首先,用户通过Web浏览器向服务器发送一条url请求,这里请求的url不再是xxx.aspx格式,而是http://HostName/ControllerName/ActionName/Parameters的样子。这个请求被ASP.NET MVC的路由映射系统截获。(路由映射可以在Global.asax中配置,我们一会再说)路由映射系统按照映射规则,解析出控制器名ControllerName,Action名ActionName和各个参数Parameters,然后,找寻Controllers目录下的ControllerNameController.cs这个控制器类,默认情况下,系统总是找寻Controllers目录下的“控制器名+Controller”这么一个类,然后,找寻这个类下与ActionName同名的方法,找到后,将Parameters作为参数传给这个方法,而后Action方法开始执行,完成后返回相应视图,默认情况下,会返回Views目录下与ControllerName同名的目录下的与ActionName同名的aspx文件,并且将ViewData传递到视图。ViewData中一般包含了控制视图显示的控制量以及视图显示需要的数据。
我们按以上思路回顾一下上一......
ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第二篇(2011-04-20 11:22:00)
摘要:摘要
本文首先一步一步完成Demo的第一个页面——首页。然后根据实现过程,说明一下其中用到的与ASP.NET MVC相关的概念与原理。
让第一个页面跑起来
现在,我们来实现公告系统中的第一个页面——首页。它非常简单,只包括所有公告分类的列表,并且每个列表项是一个超链接。其中分类数据是用我们的Mock组件得到的。实现后界面如下:
在开始之前,我们要删几个东西。因为默认情况下建立一个MVC项目时里面包含了几个示例页面,我们要做的就是:
1.将Controllers文件夹下所有文件删除。
2.将Views文件夹下除了Shared文件夹和Web.config外的所有文件删除,然后将Shared文件夹里面的文件删除。
完成以上几步后,就可以开始实现第一个页面了。
实现控制器
在Controllers文件夹下新建一个文件,类型选择“MVC Controller Class”,名字命名为HomeController.cs。这就是一个控制器类。然后我们为它编码,具体代码如下:
HomeController.cs:
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Web;
5using System.Web.Mvc;
6using System.Web.Mvc.A......
ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第一篇(2011-04-20 11:21:00)
摘要:摘要
本文将简要介绍这个文章系列的目的、形式及大体内容。并且完成开始学习这个系列前所必要的准备工作。
前言
ASP.NET MVC作为微软官方的MVC解决方案,推出有一段时间了。可以说自动推出以来,一直广受关注。在经历了漫长的Preview之后,前几天终于推出了其beta版。并且在官方文档中,微软声明最终的正式版与beta版相比不会有大的变化。所以,对于.NET平台的开发人员来说,是时候学习ASP.NET MVC了。
本系列文章作为一个ASP.NET MVC的入门教程,将不会长篇大论介绍其中的概念及理论。而是通过案例实践来学习ASP.NET MVC。在这系列文章中我将逐步完成一个“公告发布系统”。我的写作策略是:先动手做,遇到需要解释概念和理论的时候再解释,而不是先把概念和理论解释完再做东西。
另外,我还有几点要说明的:
1.为了将大家的关注点充分集中在ASP.NET MVC上,这个Demo的业务处理将使用Mock的方式。即不会真正去访问数据库,而是虚拟一些数据。
2.本Demo将不考虑任何美工问题。
下面,让我们一起开始ASP.NET MVC之旅吧。在这一篇中,我们将做完所有的准备工作。
配置环境
如果您还没有安装ASP.NET MVC的话,请到这里下载安装。
下载后,按提示安装就可以了。
新建项目
安装完ASP.NET MVC后......
汉朝(2011-04-17 23:54:00)
摘要:西汉
西汉(公元前206年—公元8年)是我国第一个统一强盛的帝国。在西汉统治的近四百年的历史中,通过一系列的政治经济的改革,使国力强盛、人民安乐,呈现出一派太平盛世的景象。在此期间,中国一直以世界强国的面目屹立于世界之林。
秦末年,项羽、刘邦拥立楚怀王与秦朝抗争。经过几年的征战,刘项军夺取天下,项羽废怀王自立为西楚霸王,分封天下土地于王侯数十人,其中刘邦被封为汉王,都南郑。但刘邦并不甘心居于项羽之下,在谋士张良、萧何,大将军韩信等人的帮助下,于公元前二零二年击败项羽,登临帝位,国号汉,定都长安,是为汉高帝。
高祖在位七年间,为了削弱异姓王侯的势力,先后剥夺韩信、英布、彭越等大将的兵权与封号,加强了中央集权统治。同时制定一系列的“与民休息”的政治方针,巩固了自己的统治,为强大的汉朝盛世奠定基础。前一五九年,高祖薨,传位惠帝刘盈,但此时政权实际已掌握在汉高皇后吕雉的手中。 吕后前后共掌权十六年,是我国历史上为数不多的女统治者之一。前一八三年,刘恒即位,是为文帝,他与景帝(文帝之子,前156—前143年在位)刘启都继续执行高祖所制定的“与民休息”的政策方针,减轻人民赋税,使汉帝国经济蓬勃发展,人民生活安定,国力大大增强,史家称这一阶段为“文景之治”。
通过“文景之治”,汉朝国力逐渐强大起来。前141年,景帝卒,其子武帝刘彻即位。刘彻也是我国历史上有名的皇帝之一,他在位期间曾使卫青、霍去病击败匈奴,扩大了西汉王朝的统治范围,保障了汉朝北方经济文化的发展。但多年的征战使国力下降,于是武帝于晚年停止征战,转而大力发展农业,使西汉的经济继续向前发展。 武帝之子昭帝继承其父的方针,继续实行无为政治,发展经济,使西汉极盛时期达到了顶点。
经过昭帝、宣帝(前73—前48 年在位)两代三十八年的“与民休息”的政策的执行,西汉王朝的国力增强,但与此同时地方势力也随之增强,严重的影响了汉帝国的统治,自元帝(前48—前32年在位)起,至成帝(前32—前8年在位)、哀帝(前6—公元1年在位)、平帝(1—6年在位)在位年间,皇帝对政权的统治力量已大不如前。 及至刘婴即位,朝权已尽落于外戚王莽之手。公元八年,王莽篡夺皇位,改国号为新,至此西汉......
唐朝(2011-04-17 16:10:00)
摘要:唐朝(公元618年-公元907年)
唐朝是中国历史上最为辉煌的一个王朝。它国力强盛,经济繁荣,文化灿烂,达到了中国封建社会发展史上的最高峰。
唐朝是中国历史上最为辉煌的一个王朝。它国力强盛,经济繁荣,文化灿烂,达到了中国封建社会发展史上的最高峰。它的高度文明影响了日本、朝鲜等许多国家和地区,是当时世界上最强大、最先进的国家。
唐共传二十二帝,历国二百九十年(其间有武则天革唐为周十六年)。其与汉朝并称为中国历史上两大强盛王朝之一。其盛时疆域东至安东府(今朝鲜平壤),西至安西府(今新疆库车),南至日南郡(今越南清化),北至安北府(今蒙古哈拉和林)。安史乱后,河西、陇右陷于吐蕃,至大中(847-860)、咸通(860-874)始复。唐王朝的前期,由唐太宗李世民直至玄宗开元年间国家一直处于大发展阶段,从经济、政治、军事、外交、文化等方面都空前繁荣。在此期间出现的"贞观之治","开元盛世"构成了中华民族引以为骄傲的盛唐气象。从而,使中国的世界地位显赫一时。唐玄宗后期出现的安史之乱,使唐王朝逐渐没落。在中晚唐时代,皇帝在经济、政治、军事上已无实权,致使藩镇割据局面形成。最后,各方纷纷脱离唐王朝的统治而成为各自独立的政权。
隋末农民起义蓬勃发展时,隋朝太原留守李渊乘机起兵,攻占长安。武德元年(公元618年),李渊受禅代隋称帝,建立唐朝,是为唐高祖,定都长安。李渊和他的儿子李世民消灭了各地割据势力,镇压了各股农民起义军,统一了全国。
武德九年(626年)六月初四,李渊次子李世民在大臣尉迟、敬德、段志玄、长孙无忌等人的帮助下,发动了“玄武门之变”,诛杀了与自己对立的太子李建成,及四弟李元吉,进而迫使其父李渊退位。同年八月,秦王李世民在大多数朝臣武将的拥护下即皇帝位,改年号贞观,是为历史上著名的唐太宗,唐太宗李世民是中国历史上一个有作为的皇帝。贞观二年,太宗命兵部尚书大将李靖讨伐突厥,大获全胜。从此消除了西域各族对中原的威胁。与此同时,太宗皇帝采取了许多有利于维护统一和加强君主专治中央集权的政治措施,启用贤能人士,由魏征、高士廉、房玄龄、杜如晦、长孙无忌等人为宰相,辅助处理国家政事。在其统治下,通过一系列的政治经济文教等方面的改革,使大唐帝国空前繁荣,史称“贞观之治”。也成为后世向往的理想时代。