ASP.NET MVC4 学习系统二(路由)

哎 昨天写的笔记忘记保存了就帖个图片吧

配置路由
    ASP.NET MVC路由负责确定由哪个控制器操作来处理特定的URL请求。它由以下属性组成。(Unique name 路由唯一的名字,URLpattern 将URL解析成有意义词语的简单模式语法,Defaults URL模式里定义的参数变量的默认值。)
    Constraints 为URL匹配模式定义更严格的约束规则。默认的ASP.NET MVC项目添加了一个通用的路由,它使用以下URL习惯来解析特定的URL请求,即分三个部分,包含在大括号内:Controller action id.{controller}/{action}/{id} 注册路由使用的扩展方法是MapRoute(),在程序启动的时候注册(在App_Start/RouteConfig.cs文件里):
 routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

除了Name 和URL_Pattern外,路由器同样定义了模式匹配事件中使用的一系列默认参数,但实际上并没有给每个参数提供默认值。

表中的第一个URL(、auctions/auction/1234) 完美匹配了路由模式,它符合路由模式各个部分的定义。但是,如果继续往下看这个表,逐渐移除URL的各个部分,就会 发现那些URL未提供的默认值。
    这是个ASP.NET MVC如何使用“惯例优先原则” 的非常重要的例子之一:当应用程序启动时,ASP.NET MVC会程序集里查找所有可用的控制器,这些控制器类都继承自System.web.MvcIcontroller接口或它的子类,并且名字带有“Cotroller” 后缀。当路由器框架确定需要访问的控制以后,它就会去掉后缀,来获取控制器类的名称。所以,当需要使用控制器时直接使用它的简称即可,比如AuctionsController指的控制器类是和 AUctions  而HomeController指的就是“Home”。另外值得注意的是,路由中的控制器和操作设置不区分大小写, 这意味着------、Actions/Recent、/auctions/Recent、/auctions/recent aunTionS/rEceNt都是一样的。下如上所示URL路由包含了路由引擎可以提取的丰富信息。为了处理ASP.NET MVC请求,路由引擎必须能够确定两个关键信息:控件器和操作。运行时,路由引擎会把这些值传递给ASP.NET MVC去创建和执行特定的控制器和操作。

时间: 2024-09-30 02:18:04

ASP.NET MVC4 学习系统二(路由)的相关文章

ASP.NET MVC4 学习系统一(项目模板)

项目模板 1.空模板      空模板用于创建ASP.NETMVC 4网站的架构,包含基本的文件夹结构,以及需要引用的asp.netmvc程序集,也包含可能要使用的javaScript 库.模板同样包含默认的视图布局,以及标准配置代码的Global.asax文件.绝大部分asp.net mvc应用程序都会用到家些代码.2.基本模板      基本模板按照asp.net mvc4的规则创建了文件结构,包含asp.netmvc程序集的引用.这些模板表明了创建asp.netmvc4  项目需要的最低标

ASP.NET MVC4 学习系统三(控制器Controller)

控制器(Controllers)    在MVC架构模式的上下文里,控制器响应用户的输入(比如,用户点击“保存”按钮),并协调模型.视图以及(经常)数据访问层.在ASP.NET MVC程序里,控制器就是包含被路由框架处理请求时调用的方法的类. 控制器操作    控制器类并无特别之处,跟别的.NET类几乎没什么区别.事实上,控制顺类里的方法(称为控制器里的操作) 做了处理请求过程中的主要工作.经常听到控制器和控制器操作这种词语,在本书里也这样称呼,其实MVC模型并不会区分二者.但是ASP.NET

ASP.NET MVC4 学习系统四(Razor)

 你好!  Razor <div>this page rendered at @DateTime.Now        <ol>            @for (int i = 0; i < 6; i++)            {                <li><a style="font:100;color:blue" href="http://www.baidu.com">不知道,就百度一下!&l

ASP.NET MVC4 学习系统三(视图)

视图(Views)    在ASP.NET MVC框架中,想要返回给用户HTML的控制器操作,就要返回ActionResult类型的ViewResult实例,ActionResult知道如何渲染应答结果.当渲染视图时,ASP.NET MVC将会使用控制器提供的名字.以HomeController的Index操作为例,如下:         public ActionResult Index()        {        ViewBag.Message="Your app descripti

ASP.NET MVC学习系列(二)-WebAPI请求

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU

一个简单的ASP.NEW MVC4网站(二)

一个简单的ASP.NEW MVC4网站(二) 今天给网站增加了注册见面,代码为: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Registration</title> <link rel="shortcu

asp.net mvc4 学习1

1 简介:微软在很早就看到了基于windows系统的web开发平台的需求,这时便开始提出自己的解决方案即微软的第一个基于web开发的平台ASP.再后来随着需求和性能的要求再2002年推出第二个解决方案ASP.NET来满足.但是技术不断地在改进很快又有了新的需求,不再基于页面在2008年推出了asp.net mvc的开发模式(模型-视图-控制器),看来五六年技术会得到一次飞跃,当然这只是猜测而已. mvc模式把应用程序分成三层,而且这三层之间的关系是松耦合即相互隔离,互不影响,而这种情况确实最好的

ASP.NET MVC学习系列(二)-WebAPI请求(转)

转自:http://www.cnblogs.com/babycool/p/3922738.html 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax

ASP.NET MVC4+BootStrap 实战(二)

上一篇文章我们讲述了页面初始加载数据的一些东西,本篇我们来讲一下查询按钮和分页按钮.在很久以前我写过一篇ASP.NET MVC4切近实战的文章,有关于分页的代码,本篇我们不采用微软的AJAX框架. 先看一下查询效果,在点击Get按钮之后,会进行AJAX请求. js代码如下 jQuery(document).ready(function () {     setRowBackColor();     $("#btnsearch").click(function () {