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的部分。

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

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

13,MVC的运行声明周期

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

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

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

  RouteTable.Routes.RouteExistingFiles = true;

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

ASP.NET MVC______VS2012的更多相关文章

  1. ASP.NET Core 之 Identity 入门(一)

    前言 在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 组件库,负责对用户的身份进行认证,总体来说的话,没有MVC 5 里面那么复杂,因为在MVC 5里面引入了OW ...

  2. Asp.Net Mvc 使用WebUploader 多图片上传

    来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...

  3. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  4. ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”

    DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMi ...

  5. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  6. ASP.NET_各个币种之间的汇率转换(实时)使用Yahoo汇率。

    近期开发支付平台的时候有运用到各国的实时汇率之间的转换问题,于是在往上找了很多相关资料,以下就是一些参考网址: 1.提供API接口的网站:https://www.showapi.com:这个网站有提供 ...

  7. ASP.NET Core MVC/WebAPi 模型绑定探索

    前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用 ...

  8. ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”

    在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式>中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将 ...

  9. Asp.Net WebApi核心对象解析(下篇)

    在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...

随机推荐

  1. div倾斜 文字不倾斜

  2. C语言-------指针函数与函数指针的区别

    一. 在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义: 1.指针函数是指带指针的函数,即本质是一个函数.函数返回类型是某 ...

  3. 【Tsinsen】A1280. 最长双回文串

    Bryce1010模板 http://www.tsinsen.com/A1280### 题目分析:记录一个点向后和向前的最长回文串,然后就是max(Llen[i]+Rlen[i+1])了. #incl ...

  4. PHP常见的输出语句 echo()、print()、print_r()、var_dump()、pinrtf()之间的区别

    echo().print().print_r().var_dump().pinrtf()之间的区别 1.print() :简单输出语句,可以输出字符串,变量.表达式等单项的值!(不能输出数组.对象等复 ...

  5. 为什么站点使用https加密之后还能看到相关数据

    为什么站点使用了https加密之后,还是能够用firebug之类的软件查看到提交到的信息,并且还是明文的?例如说这样: 这是因为:https(ssl)加密是发生在应用层与传输层之间,所以在传输层看到的 ...

  6. apache mod_alias模块功能介绍

    我觉得mod_alias根mod_rewrite挺像的,都可以实现url的重写,而mod_alias可以实现简单的url重写的功能 ,而mod_rewrite可以实现比较复杂的重写.mod_alias ...

  7. 关于Control.Dispatcher.BeginInvoke卡界面

    Control.Dispatcher.BeginInvoke里的逻辑由UI线程执行,如果内部包含耗时操作就会造成界面卡住. Action.BeginInvoke里的逻辑,将在一个新开的线程中执行,而不 ...

  8. TextView、EditText

    1.TextView     显示文本信息 常用属性: layout_width/height    控件的宽/高 width/heigth    文本区域的宽/高 text 显示的文本 textSi ...

  9. 获取登陆信息 在created()方法中

    // 获取登录信息 public async InitUser() { await sj.globalVar.Init(true); this.params.unitId = sj.globalVar ...

  10. 生产线上的Nginx如何添加未编译安装模块

    正在生产线上跑着web前端是nginx+tomcat,现在有这样一个需求,需要对网站的单品页面和列表页设置缓存,不同的页面设置不同的缓存,但是由于开始没有安装ngx_cache_purge这个模块,现 ...