MVC ASP.NET MVC介绍

1. 定义
  MVC(Model-View-Controller)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型,视图和控制器。

2. MVC模式与WebForm模式区别

  • WebForm模式
    一个URL请求的是在服务器与该URL对应路径上的物理文件,然后由该文件来处理这个请求并返回结果给客户端。
  • MVC模式
    客户端的所请求的URL是被映射到相应的Controller去,然后由Controller来处理业务逻辑,或许要从Model中取数据,然后再由Controller选择合适的View返回给客户端。

3. ASP.NET MVC项目的目录结构

  • App_Data:用于存放数据
  • Content:用于存放资源文件(CSS、JS、图片等)
  • Controllers:用于存放Controller类,Controller类的命名必须以Controller结尾
  • Models:用于存放业务实体、数据访问层代码的类
  • Views:用于存放view文件,每一个Controller对应一个view文件夹。
        Views目录下的Shared子目录用于存放一些共享的view的。例如Error.aspx和Site.Master

4. ASP.NET MVC核心DLL

  • System.Web.Routing:URL路由。将一个URL路由到对应的Controller上。是在HttpModule里面处理的。
  • System.Web.Extensions:这个是ASP.NET AJAX的
  • System.Web.Mvc:ASP.NET MVC最主要的程序集。
  • System.Web.Abstractions:一些相关的基类。例如HttpContextBase、HttpRequestBase 等等。

5. Routing

  • 在Global.asax文件中的Application_Start事件中添加routes,这确保routes在程序启动时就可用,而且也允许在你进行单元测试的时候直接调用该方法。如果你想在单元测试的时候直接调用它,注册该routes的方法必需是静态的同时有一个RouteCollection参数。 
    public static void RegisterRoutes(RouteCollection routes)
    {
        //忽略对.axd文件的Route,也就是和WebForm一样直接去访问.axd文件
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    
        routes.MapRoute(
            "Category",                                              // Route 的名称
            "Category/{action}/{categoryName}",                           // 带有参数的URL
            new { controller = "Category", action = "Index", categoryName = "4mvc" }  // 设置默认的参数
        ); 
    
    } 
    
    protected void Application_Start()
    {
        //在程序启动的时候注册我们前面定义的Route规则
        RegisterRoutes(RouteTable.Routes);
    }

 6. Controller和Action

  • Controller类分为Controller类和ControllerBase类。Controller类继承自ControllerBase类,而ControllerBase实现了IController接口。
  • Action名是可以定义的,使用ActionNameAttribute来定义
    public ActionResult Setting()
    {
        throw new NotImplementedException();
    } 
    
    [ActionName("Setting")]
    public ActionResult SaveSetting()
    {
        throw new NotImplementedException();
    }
    
  • Action方法的参数和Route中定义的参数名相同,ASP.NET MVC才能自动为Action方法的参数赋值。  
  • Action方法返回ActionResult类型的结果。ASP.NET MVC为我们提供了几种ActionResult的实现,如下:
    ViewResult. 呈现视图页给客户端。由View 方法返回.
    RedirectToRouteResult. 重定向到另外一个Route。由RedirectToAction 和RedirectToRoute 方法返回.
    RedirectResult. 重定向到另外一个URL。由 Redirect 方法返回.
    ContentResult. 返回普通的内容。例如一段字符串。由 Content 方法返回.
    JsonResult. 返回JSON结果。由 Json 方法返回.
    EmptyResult. 如果Action必须返回空值,可以返回这个结果。Controller中没有实现的方法,可以return new EmptyResult().

7. View与ViewData

8. TempData

9. Helper与数据的提交与绑定

10. ModelState与数据验证
  

  
  
  

 

http://www.cnblogs.com/fish-li/archive/2012/02/12/2348395.html
引自:http://www.cnblogs.com/QLeelulu/archive/2008/09/30/1302462.html#

参考:http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-1

原文地址:https://www.cnblogs.com/raysbo/p/2834873.html