首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

学习 ASP.NET MVC (第一次)理论篇

2012-10-29 
学习 ASP.NET MVC (第一回)理论篇Code//URL规则的定义public static void RegisterRoutes(RouteCollection

学习 ASP.NET MVC (第一回)理论篇
学习 ASP.NET MVC (第一次)理论篇Code
//URL规则的定义
public static void RegisterRoutes(RouteCollection routes)
{
????? routes.MapRoute(
?????"Default",
?????"{controller}/{action}/{id}",
?????new {action="Index",id=0},
?????new {controller=@"^\w+",id=@"\d+"});
???
?????//Car/bnw.abc
????? routes.MapRoute(
?????"Car",
?????"Car/{make}.{model}",
?????new {controller="car",action="Index"},
?????new {make=@"(acural|bnw)"});
}

protect void Application_Start()
{
????? RegisterRoutes(RouteTable.Routes);
????? RouteTable.Routes.RouteExistingFiles=true;
}

如果URL访问的是磁盘上的一个物理文件,默认情况下不会被URL Routing,可以用RouteTable.Routes.RouteExistingFiles=true;避免。

Routing和URL Rewrite的区别:
URL Rewrite:改变程序处理的URL(ASP.NET WebFrom)
URL Route:根据URL的规则选择执行(MVC)

Controller & Action
通过URL Routing确定的Controller类和Action方法。Action中执行的是表现逻辑,根据用户传入的参数(URL)来操作Model(执行业务逻辑)-->获取数据-->选择一个View进行输出。
Action执行之后返回的是一个ActionResult(生成html,页面跳转...)
Controller是一个类,而Action是一个方法。
Conetroller的要求:
1>.继承System.Web.Mvc.Controller类
2>.以Controller结尾
3>.XyzController的名称即为:Xyz-->约定胜于配置
4>.ASP.NET MVC框架会在Web应用程序所引用的所有程序及范围内查找Controller。

Action的要求:
必须是个公有的方法
返回ActionResult类型,也可以返回void。直接使用Response.Write
必须是实例方法
不能使泛型方法
没有标注NonActionAttribute
不能被重载

ActionResult:是一个抽象类表示Action的执行结果,ASP.NET MVC架构将在获得ActionReault之后执行其Execute方法。
内置的ActionResult:ActionRedirectResult:跳转到某个Action。HttpRedirectResult:跳转到任意地址。RenderViewResult:生成内容。EmptyResult:什么都不做。JsonResult:用于JSON序列化输出。ContentResult:直接输出字符串。

?

生成View
ViewEngine(表明使用了什么样的View进行生成),它是可替换的。
默认使用aspx,ascx,master
MvcContrib提供了额外的4种ViewEngine。
ASP.NET MVC的默认View:.aspx--页面内容的主体,.master--模板框架,.ascx--局部视图:Html.RenderUserControl方法将一个UserControl生成局部视图。
需继承System.Web.Mvc.ViewPage
--ViewData有个属性为Model
--ViewPage<T>的ViewData为T类型
--默认的ViewPage近似于ViewPage<object>
View中生成html的方式:
1>.内联脚本方式:for{},foreach{}。类似ASP,但是并不是业务逻辑和显示的html放在一起。两者还是分离的。
使用脚本最大的好处就是使用灵活。调试起来是不是不是很方便???
2>.使用控件:Repeater(推荐)可以用来显示一维数据,ListView (推荐)可以用来显示二维数据
3>.使用辅助方法
--HtmlHelper类:提供的一些辅助的方法为我们生成Form,ActionLink,Button,CheckBox,Select(下拉框),Encode....的HTML
方法中提供了很多重载。
--UrlHelper类:生成Url以及与Url相关的东西。比如生成Action的Url。

小结:初步了解下ASP.NET MVC的基本概念和执行流程

热点排行