• ASP.NET MVC______VS2012


    1,在VS2010中,选中指定的代码段,可以拖拽到工具箱中,形成标签,以后还想书写类似的代码,双击鼠标即可。

    2,在VS2012中,可以在注释上标注//TODO:我是注释

    这样,注释就会出现在任务列表中,一些关键常用的方法/字段/关注点,通过这种方式快速定位。如图:

    3,在VS2012中是不支持MVC1.0和MVC2.0的,如果要开启低版本MVC项目的话,必须使用VS2010

    4,_ViewStart.cshtml文档会在所有其他所有视图(VIEW)运行之前载入。

    发现使用布局页的视图没有完整的HTML结构,是因为类似的视图都作为一部分被装载到布局页中,由_ViewStart.cshtml文档指定,默认为_Layout.cshtml。

    5,可以在视图页面的头部定义ViewBag的临时变量,而不必是在Controller的Action方法中定义,如图:

    6,在浏览网页时,如果只是指定Controller,而不指定Action,而控制器和动作方法均是必须的路由参数,这时将去RegisterRoutes()方法中取默认的Action值,如图:

    上图中默认的方法为Index,也就是说当我们输入.../example的时候,会自动路由为.../example/index

    7,如果在View中定义了@model模型声明,那么通过Controller传进View的模型类型必须与View中所声明的类型兼容,否则将产生异常,如图:

    8,在view文档(也就是cshtml中),<head>标签中的<title>标签指标题,如图:

    9,如下代码:

    <p>
    @Html.ActionLink("Create New", "Create")
    </p>

    创建链接,因为没有指定链接的控制器名称,所以链接到当前控制器的Create动作方法,显示的文本为“Create New"。

    10,HTTP GET POST

    HTTP GET负责显示编辑的窗体,HTTP POST负责实际更新数据库里的属性。

    11,杂:

    @Html.HiddenFor(model => model.ID)   生成HTML窗体的隐藏域

    HTML注释符号:<!--我是被注释的内容-->

    在ASP.NET MVC中不建议使用Request对象和Response对象

    不要在视图中撰写过多的程序逻辑,实现“关注点分离”

    网址路由在MVC中的作用:

    1、比对浏览器传过来的HTTP请求,对应到适当的控制器和Action进行处理;

    2、决定MVC输出什么样的响应给浏览器;

    12,网址路由

    比如:单击“主页”链接,浏览器将URL封包,并发送HTTP要求到服务器上,IIS接收到这个HTTP封包,转给网址路由模块负责将HTTP请求交由那个HTTPHandler处理,对于MVC来说,自然是转交给MVCHandler处理,这才会进入MVC的运行声明周期。

      所有ASP.NET Web程序的入口点均是Application_Start()事件,其中 RouteConfig.RegisterRoutes(RouteTable.Routes);

      代码中的Routes是一个公开的静态变量,用来保存所有网址路由的规则集合,为RouteCollection类型的变量。

      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        代码中,表示不要通过网址路由处理,即如果从浏览器传递过来的网址,匹配该规则,将由IIS的其他Http模块处理,将不会进入ASP.MET MVC的生命周期。

      url: "{controller}/{action}/{id}"

      代码中URL样式包含三个路由参数,分别是Controller/Action/ID,注意该URL样式不能以‘/'开头。

      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

      默认值。当对比不到HTTP请求的网址时,会尝试带入代码中的默认值。

      当接收到HTTP请求时,将从上而下逐条比对,直到找到符合的网址格式。

      注意ID不算在网址路由之中,属于QueryString的部分。

    1                 routes.MapRoute(
    2                 name: "Default",
    3                 url: "{controller}/{action}/{id}",
    4                 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    5             );        

      上述代码中,MapRoute使用的是具名参数。

    13,MVC的运行声明周期

         网址路由比对-->运行Controller与Action-->运行View并回传结果

    14,MVC在比对网址路由时,默认情况下,如果查找到网站实体目录中查找相应的实体文档,会自动略过所有网址路由比对。

       如果想打破这种默认行为,那么在MVC程序的入口Application_Start()中,添加如下代码:

      RouteTable.Routes.RouteExistingFiles = true;

      当网址路由比对成功时,MVC默认交由MvcHandler处理。

  • 相关阅读:
    SiteMesh在项目中的配置
    javascript深入理解js闭包
    小tip: 使用CSS将图片转换成黑白(灰色、置灰)
    java程序员最不愿意看到的十件事
    Spring AOP AspectJ
    2万字Java并发编程面试题整理(含答案,建议收藏)
    85道Java微服务面试题整理(助力2020面试)
    10个很多人不知道的Redis使用技巧
    2020年大厂Java面试题(基础+框架+系统架构+分布式+实战)
    2020年薪30W的Java程序员都要求熟悉JVM与性能调优!
  • 原文地址:https://www.cnblogs.com/SharpL/p/4587010.html
Copyright © 2020-2023  润新知