zoukankan      html  css  js  c++  java
  • 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处理。

  • 相关阅读:
    POJ 1887 Testing the CATCHER
    HDU 3374 String Problem
    HDU 2609 How many
    POJ 1509 Glass Beads
    POJ 1458 Common Subsequence
    POJ 1159 Palindrome
    POJ 1056 IMMEDIATE DECODABILITY
    POJ 3080 Blue Jeans
    POJ 1200 Crazy Search
    软件体系结构的艺术阅读笔记1
  • 原文地址:https://www.cnblogs.com/SharpL/p/4587010.html
Copyright © 2011-2022 走看看