ASP.NET MVC 学习之路-3
本文在于巩固基础
到这里不得不说ASP.NET MVC一个规则:惯例优先原则

ASP.NET会假定开发人员遵循特定的规则来构建自己的程序而不是使用配置文件
ASP.NET MVC文件夹结构也遵循惯例优先原则,控制器默认以“Controller”结尾,整个框架都是按照这种方式来注册控制器,并且将它们与路由相关联
Share文件夹惯例优先原则也是很明显,这个惯例可以方便用户找到布局文件的位置,如果HomeController控制器包含"Index"操作,它就会按照惯例去Views/Home目录下寻找Index视图,如果找不到就会到Shared文件夹里面去找
惯例优先原则确实能够替我们节约自己去构建的时间,提高代码可读性,从而提高开发效率
下面我们来看看ASP.NET MVC如何处理请求的

路由的概念:请求是使用一个带有URL的请求,在ASP.NET MVC中路由只是一个模式匹配系统,在程序开始,程序注册一个或者多种模式,告诉路由该如何处理这些与模式匹配的路由,路由引擎在运行时接收到请求以后,它就会根据事先已经注册好的URL模式匹配当前请求的URL,当路由引擎在路由表里发现配置的模式时,它就会把请求转发给特定的处理器来处理请求,如果找不到任何匹配的路由时就是报404状态错误码

routes.MapRoute(
name: "Default",//路由的名字
url: "{controller}/{action}/{id}",//通用的路由,URL参数
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }//默认参数
);
MapRoute方法用于注册路由

控制器的方法或者说是操作做了处理请求的主要工作
/Home/Index 执行HomeController中的Index方法
ASP.NET MVC 学习之路-3的更多相关文章
- ASP.NET MVC 学习之路-1
本文在于巩固基础 学习参考书籍:ASP.NET MVC4 Web编程 首先确定我们学习MVC的目标: 我们学习ASP.NET MVC的目的在于开发健壮的.可维护的Web应用,当然这需要一定的知识基础, ...
- ASP.NET MVC 学习之路-2
本文在于巩固基础 为了方便理解MVC框架,我们先创建空的ASP.NET MVC模板 下面是创建后的项目结构 每个文件或者文件夹的作用 App_Data 应用程序数据--- 顾名思义是放置文件或者数据库 ...
- ASP.NET MVC 学习之路-4
本文在于巩固基础 模型绑定 从URL 获取值 public ActionResult About(int id) { ViewBag.Id = id; return View(); } @{ View ...
- ASP.NET MVC学习之路:模板页
1.MVC开发步骤: 控制器-视图. 2.每一个视图都会有一个默认的模板页:_ViewStart.cshtml. 名字不能改,只能叫_ViewStart. 3.Layout=”~/Views/Shar ...
- ASP.NET MVC 学习之路-5
本文在于巩固基础 数据库开发模式: 1.数据库优先开发模式 2.模型优先开发模式 EntityFramework学习之一 最简单的一个案例 第一步创建模型 public class Student { ...
- ASP.NET MVC 学习之路-6
本文在于巩固基础 上文中使用的Code First创建数据库 本文将使用数据库生成模型 这里使用ADO.NET实体数据模型来生成模型 下面按照指导完成操作 下面看看如何使用这个框架 数据访问修改主要是 ...
- [ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject
本人博客已转移至:http://www.exblr.com/liam 为什么需要依赖注入 在[ASP.NET MVC 小牛之路]系列的理解MVC模式文章中,我们提到MVC的一个重要特征是关注点分离( ...
- [ASP.NET MVC 大牛之路]01 - 开篇
匆匆2014,转眼就到末尾了.在这一年,你还有哪事情些想做而没有做? 2014年在我身上发生了两件意义重大的事,一是正月初一宝宝出生,我升级成为了爸爸:二是进入了一家创业公司,成为了技术负责人. 去年 ...
- [ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - 委托和事件
在ASP.NET MVC 小牛之路系列中,前面用了一篇文章提了一下C#的一些知识点.照此,ASP.NET MVC 大牛之路系列也先给大家普及一下C#.NET中的高级知识点.每个知识点不太会过于详细,但 ...
随机推荐
- Virtualbox下实现Ubuntu虚拟机和win7主机文件共享(很简单,亲自试用,按此步骤一般都会成功)
最近做一个操作系统实验,第一个实验即是实现Ubantu虚拟机与主机之间的共享. 本例用的是VirtualBox虚拟机,若使用Vmware WorkStation虚拟机则方法与下文介绍略有不同,但基本相 ...
- 2.6. Statistical Models, Supervised Learning and Function Approximation
Statical model regression $y_i=f_{\theta}(x_i)+\epsilon_i,E(\epsilon)=0$ 1.$\epsilon\sim N(0,\sigma^ ...
- UbuntuOpenStack core componennts
<1,keystone安装配置> 1,yum -y install openstack-keystone python-keystoneclient; 2,配置实用mysql存储keyto ...
- Linux(gnu)环境动态链接库的搜索路径
摘自http://blog.csdn.net/saga1979/article/details/14161229 man ld.so(8)说,如果库依赖不包括“/”,那么它将按照下面的规则按顺序搜索: ...
- mysql 1449 : The user specified as a definer ('montor'@'%') does not exist
grant all privileges on *.* to root@"%" identified by "."; flush privileges;
- 关于各种排列(dfs)
代码一:数字有重复: #include <cstdio> ],arr[]={,,,}; void dfs(int v){ if(v >= n){ ;i<n;i++) print ...
- JavaScript 自动生成 年月范围 选择
近日做项目涉及到日期选择,为了用户界面友好,于是加入了一年内的年月段的查询功能,先看效果 会自动判断当前年份 以下为html代码 其中用到了 Jquery 和 struts 标签 但是这两个都不是重要 ...
- C# 3.0 { get; set; } 默认值
.NET Framework 3.5 使用的是 C# 3.0,C# 3.0 有一些新的语言特性,其中有一项就是快捷属性. 之前的写法: private int _id = 0;public int I ...
- 移动端H5页面之iphone6的适配
iphone6 及 iphone 6 plus 已经出来一段时间了.很多移动端网站,以前写死body 为320px的,现在估计也忙着做适配了. 大屏幕手机其实一直有,只是以前大家没怎么重视,移动端的H ...
- Time Out 访问数据库超时处理 .NET
using System.Reflection; using System.Data.SqlClient; TransactionSelectTableAdapter adapter = new Tr ...