asp.net MVC 5 路由 Routing_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > asp.net MVC 5 路由 Routing

asp.net MVC 5 路由 Routing

 2017/7/27 5:30:54  huangenai  程序员俱乐部  我要评论(0)
  • 摘要:ASP.NETMVC,一个适用于WEB应用程序的经典模型model-view-controller模式。相对于webforms一个单一的整块,asp.netmvc是由连接在一起的各种代码层所组成。最近又接触了关于asp.netmvc的项目,又重拾以前的记忆,感觉忘了好多,特此记录。首先,来说说路由Routing。ASP.NETMVC不再是要依赖于物理页面了,你可以使用自己的语法自定义URL,通过这些语法来指定资源和操作。语法通过URL模式集合表达,也称为路由
  • 标签:.net ASP.NET MVC net

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就是可选参数

 

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

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

发表评论
用户名: 匿名