龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

ASP.NET MVC小结之基础篇(二)

时间:2014-11-18 11:04来源:网络整理 作者:网络 点击:
分享到:
本文续上篇文章,还是介绍些asp.net mvc相关的基础知识,非常的详细,新手朋友们看看,高手们略过吧

整理除了这个笔记,共享一下子,基本MVC的所有东西都介绍了,但是都是很基础的东西。本来打算一篇发表完的,但是发现东西有点多,所以分成了两篇文章,这是最后一篇了!

1.ASP.NET MVC请求过程

  1

2.Controller

  (1) 控制器在ASP.NET MVC中扮演着处理客户端请求的角色

  1)必须实现System.Web.Mvc.IController接口

   ->通常直接继承System.Web.MVC.Controller类

  2)必须要以Controller结尾

  3)通过不同的Action来处理具体的客户端请求

3.Action

  (1) 是指在继承了System.Web.Mvc.Controller类中所定义的返回值的类型可以兼容

  (2)ActionResult方法

复制代码 代码如下:

namespace MvcApplication.Controllers
{
public class HomeController:Controller
{
public ActionResult Index()
{
ViewBag.Message="韩迎龙";
return View();
}
}
}

  (3)ASP.NET MVC3的ActionResult

    

  (4)注意事项

  1)能够通过URL访问的Action必须是公有(Public)方法

  2)如果标记了[NonAction]属性,这不能通过URL访问该Action

  3)默认,Action得方法名就是Action名(通过URL访问的名称),如有特殊需求也可通过[ActionName("OtherActionName")]标记出特定的Action名

  4)我们可以通过[HttpPost][HttpGet]等来区分处理不同的请求动作的同名Action

4.ASP.NET Routing 路由,过滤器

  (1) ASP.NET Routing模块(Module)的责任是将传入的客户端(浏览器)请求映射为特定的MVC Controller Actions

  (2)路由机制

  1)路由引擎 -映射URLS到Controlller

复制代码 代码如下:

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{id}", // 带有参数的 URL
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
);
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}

  2)/Products/Detail/8

复制代码 代码如下:

routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{id}", // 带有参数的 URL
);
public class ProductsController:Controller
{
public ActionResult Details(int id)
{
return View();
}
public ActionResult Edit(int id)
{
return View();
}
}

5. MVC3中Routing变更

  (1) 从System.Web.Routing3.5程序集中转移到了System.Web 4程序集中,成为了基础服务的一部分。

  (2)在ASP.NET 4中Routing的Module被注册在根Web.Config中,不需要你在自己的应用程序中的Web.Config中另行注册了

  (3)UrlRoutingModule处理的事件减少了一个,仅处理PostResolveRequestCache事件

  (4)HttpRequest新增加了一个RequestContext属性

  (5)增加了PageRouteHandler,支持WebForm路由功能

  (6)RouteCollection中增加了4个MapPageRoute的重载方法,添加路由规则更方便了

6. Routing好处

  (1) 可以方便的实现REST服务

  (2)Url友好化,利于SEO和增强用户体验

  (3)Controller和Action的调用规则可定制化,降低耦合,提高灵活性

7. 过滤器

  (1) Filter是一种AOP模式,能够对一系列操作进行横切干扰的手段,它很大程度解耦了依赖关系,让我们的代码更加简练,功能更加丰富

  (2)ASP.NET MVC中提供了4类Filter接口

   1)IActionFilter

  2)IAuthorizationFilter

  3)IExceptionFilter

  4)IResultFilter

  (3)ASP.NET MVC中提供了OutputCacheAttribute,HandlErrorAttribute,AuthorizeAttribute等常用Filter实现

  (4)Filter的切入过程

  1)以ActionFilter为例

      

8. SP.NET MVC3中的Filter

  (1) 提供了全局注册Filter功能

  (2)提供了对ChildAction的OutputCache支持

  1)结合[ChildActionOnly]使用

9. Model

精彩图集

赞助商链接