ASP.NET MVC ,一个适用于WEB应用程序的经典模型 model-view-controller 模式。相对于web forms一个单一的整块,asp.net mvc是由连接在一起的各种代码层所组成。

最近又接触了关于asp.net mvc的项目,又重拾以前的记忆,感觉忘了好多,特此记录。

首先,来说说路由Routing。

ASP.NET MVC 不再是要依赖于物理页面了,你可以使用自己的语法自定义URL,通过这些语法来指定资源和操作。语法通过URL模式集合表达,也称为路由。

路由是代表URL绝对路径的模式匹配字符串。所以路由可以是一个常量字符串,也可能包含一些占位符。

新建一个asp.net mvc项目。在global.asax文件我们可以看到路由在这里注册,让程序在启动的时候得到处理。

我们常用到的路由的特性设置有名称,URL模式和设置默认值。

让我们看看新建的项目的路由是怎么样的,我们打开RouteConfig

namespace HEAMvcDemo
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}

通常使用MapRoute来填充mvc管理路由对象的静态集合,MapRoute方法提供了很多重载。

第一个参数是路由的名称这里设置为Default,每一个路由都有一个唯一的名称。

第二个参数是URL模式。

第三个参数是URL指定参数的默认值的对象。

我们可以自定义条件去约束路由。

例:要求id必须是五位的数字

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

那么  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");  存在的意义是什么呢??

这段代码就是为了指示路由系统忽略任何.axd请求。

我们新建的页面点击运行,跑起来我们可以看到浏览器的地址是 http://localhost:49627/,我们一运行打开的是哪个控制器的哪个视图呢??

在路由配置这里 new { controller = "Home", action = "Index", id = UrlParameter.Optional },它定义了默认打开的控制器的视图,当url并不是完整的URL模式的时候→{controller}/{action}/{id}。

让我们来看看这个URL  http://localhost:49627/Home/About

controller =Home action=About id=?? 那么id呢,我这里没有id为什么可以呢,都是因为这个  id = UrlParameter.Optional,在这里id就是可选参数

此随笔乃本人学习记录,如有疑问欢迎在下面评论,转载请标明出处。

如果对您有帮助请动动鼠标右下方给我来个赞,您的支持是我最大的动力。

asp.net MVC 5 路由 Routing的更多相关文章

  1. 返璞归真 asp.net mvc (2) - 路由(System.Web.Routing)

    原文:返璞归真 asp.net mvc (2) - 路由(System.Web.Routing) [索引页] [源码下载] 返璞归真 asp.net mvc (2) - 路由(System.Web.R ...

  2. ASP.NET MVC 自定义路由中几个需要注意的小细节

    本文主要记录在ASP.NET MVC自定义路由时,一个需要注意的参数设置小细节. 举例来说,就是在访问 http://localhost/Home/About/arg1/arg2/arg3 这样的自定 ...

  3. 理解ASP.NET MVC的路由系统

    引言 路由,正如其名,是决定消息经由何处被传递到何处的过程.也正如网络设备路由器Router一样,ASP.NET MVC框架处理请求URL的方式,同样依赖于一张预定义的路由表.以该路由表为转发依据,请 ...

  4. asp.net mvc 特性路由(MapMvcAttributeRoutes)的应用

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012835032/article/details/51160824asp.net mvc 特性路由 ...

  5. ASP.NET Core MVC 之路由(Routing)

     ASP.NET Core MVC 路由是建立在ASP.NET Core 路由的,一项强大的URL映射组件,它可以构建具有理解和搜索网址的应用程序.这使得我们可以自定义应用程序的URL命名形式,使得它 ...

  6. ASP.NET MVC 之 路由配置

    主要操作在App_Start 目录下的 RouteConfig.cs 文件. 一.Url构造方式 1.命名参数规范+匿名对象 routes.MapRoute( name: "Default& ...

  7. ASP.NET MVC的路由

    好久没写博文了,感觉最近好像少了点动力.唉!这回就看看这个MVC的路由. 说这个路由机制其实不是MVC里面特有的,ASP.NET里面本身就有的,只不过在WebForm里面一般比较少用,而在MVC里就是 ...

  8. ASP.NET MVC API 路由生成规则

    我们都知道调用ASP.NET MVC的某些API函数(诸如:Url.Action.RedirectToAction等)可以生成URL,ASP.NET MVC会根据调用API函数时传入的参数去匹配系统定 ...

  9. asp.net mvc 伪静态路由配置

    asp.net mvc实现伪静态路由必须按如下方式设置好,才能访问 .htm 或者.html页面 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspne ...

随机推荐

  1. gitlab 修改root密码

    [root@svr34 bin]# gitlab-rails console production Loading production environment (Rails 4.2.5.2) irb ...

  2. 获取Vue的实例方法

    我们知道在new Vue({...})后,如果没有赋值给一个变量存储,我们很难拿到这个实例,Vue官方也没有提供Vue.getInstance方法,那我们就自己扩展个吧 Code: Vue.getIn ...

  3. TensorFlow升级到1.13

    win10下: 安装后import tensorflow出错:tensorflow/python/lib/core/bfloat16.cc:675] Check failed: PyBfloat16_ ...

  4. vue 导航守卫,验证是否登录

    路由跳转前,可以用导航守卫判断是否登录,如果登录了就正常跳转,没有登录就把路由指向登录页面. router.beforeEach((to, from, next) => { const next ...

  5. Code First的实体继承模式

    Entity Framework的Code First模式有三种实体继承模式 1.Table per Type (TPT)继承 2.Table per Class Hierarchy(TPH)继承 3 ...

  6. Greenplum 日常维护手册 (汇总、点评、备查)

    1. 数据库启动:gpstart常用可参数: -a : 直接启动,不提示终端用户输入确认-m:只启动master 实例,主要在故障处理时使用2. 数据库停止:gpstop:常用可参数:-a:直接停止, ...

  7. Python h5py

    1.关于安装: 如果你使用的是Anaconda的话,安装命令如下: conda install h5py 如果没有,安装命令如下: pip install h5py 2.核心概念 读取HDF5文件,假 ...

  8. 关于Idea里设置Terminal为Git/bin/bash.exe中文乱码的问题的终极解决方案

    1.这里如果设置为Git/git-bash.exe确实不会乱码,但是每次点Idea里的Terminal都会弹出一个单独的terminal窗口而非在idea子窗口里出现: 2.因此需要设置为Git/bi ...

  9. windows和ubuntu下git commit提交后如何保存和退出,回到命令行

    问题一: windows下git commit后会进入vim界面,不知道怎么操作 解决办法: 1.输入小写字母i,此时进入编辑模式,可以输入你想输入的内容 2.按下esc键,此时退出编辑模式,输入英文 ...

  10. python3安装scrapy--记录

    1.pip install wheel 2.url=http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 搜索 下载对应的twiset和scrapy版本到本地 ...