zoukankan      html  css  js  c++  java
  • MVC简介

      之前自学了MVC的知识点,由于在工作中并未使用到。所以过久了就忘记一部分惹,再来从头小小的复习一下:

    一。什么是MVC模式?

    MVC(Model-View-Controller,模型-视图-控制器)模式其实 就是一种软件架构模式。

    二。MVC和WebForm工作流程的区别图片及内容来自http://www.cnblogs.com/QLeelulu/archive/2008/09/30/1302462.html

    WebForm中,当User请求一个页面(例如http://www.51mvc.com/blog/index.aspx)时的工作流程如下:

    image   

       从上图可以清晰的看到,WebForm程序会到网站根目录下去寻找blog目录下的Index.aspx文件,然后由index.aspx页面的CodeBehind文件(.cs文件)进行逻辑处理,而CodeBehind中或许包含到数据库去取出数据,然后再由Index.aspx页面来呈现给用户。

    再来看MVC程序,当用户请求一个页面时(例如http://www.51mvc.com/blog/index.aspx),其工作流程:

    image 

    从上图可以清晰的看到,在MVC中:

    在客户端所请求的URL是被映射到相应的Controller去;

    然后由Controller来处理业务逻辑,或许要从Model中取数据;

    然后再有Controller选择合适的View返回给客户端。

    例如我们运行ASP.NET MVC程序访问的http://localhost:62106/Home/Index这个URL,它访问的其实是HomeController中的Index这个Action,见下图:

    image 

    那么,URL是怎么被定位到Controller中的呢?

       ---通过路由,而具体的URL会被路由到哪一个Controller中去,这些可以完全由我们自己定义。我们可以在Global.asax文件中去看一下:

    image

    那么,View又是怎么被返回客户端的呢?

    ---Controller中的Action方法中有个return View()的方法。默认请款下它返回与Action同名的View.在ASP.NET MVC默认的视图引擎(WebFormViewEngine)下,View是按照如下路径访问的:

    /Views/{Controller}/{Action}.aspx

    对于URL http://localhost:62106/Home/Index, 在默认情况下,在Index这个Action中用return View()来返回View的时候,会执行如下两步:

    1. 去寻找Views/Home/Index.aspx文件;

    2. 如果找不到Views/Home/Index.aspx这个文件,就会去Share目录中寻找:Views/Share/Index.aspx;

    3. 如果都找不到,就会抛出找不到View异常。

    但是,当我们直接去访问Views/Home/Index这个路径,它会出现404错误,说找你不到文件,Why?

    ---因为在MVC中,是不建议直接去访问View的,所以我们建立的ASP.NET MVC程序在默认情况下就在Views目录下加了一个Web.config文件,其中有如下内容:

    image

       上图的意思就是说,访问Views目录下的所有的文件都会由System.Web.HttpNotFoundHandler来处理,所以不要将资源文件(CSS,JS,图片等)放在Views目录中。如果确实要放到Views目录下的话,请修改Views/web.config文件。

  • 相关阅读:
    存储过程分页
    连接数据库
    绑定数据
    有关最近做的项目中用到的日期控件
    循环累加 由for _foreach
    打印gridview 中的所有内容
    list<>操作
    创建表两个主键外键~~~
    连接数据库sql server 2005
    WPF控件编程
  • 原文地址:https://www.cnblogs.com/erhanhan/p/8535316.html
Copyright © 2011-2022 走看看