• 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

  • 相关阅读:
    OOAD-2 UML建模、类、接口、类图的详细介绍
    OOAD-1 GOF中的23种设计模式的分类和功能
    java核心技术第四章疑问点
    数据结构中的遇到的一些小知识整理
    springboot中一次坑爹的打包体验
    mybatis中@param的使用与否
    mybatis 防止sql注入
    java窗口
    java异常处理
    第三次上级作业
  • 原文地址:https://www.cnblogs.com/raysbo/p/2834873.html
Copyright © 2020-2023  润新知