码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET MVC学习之路由篇

时间:2016-11-27 06:19:48      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:out   数字   arp   ace   asp.net   default   二义性   conf   数据   

1.URL路径和路由配置中的路径对比

技术分享

2.由上面的图,我们可以得出下面的一组路由数据

技术分享

 3.二义性

如果我们在Models中也新建一个Home控制器,那么你会发现重新刷新之后报错了。而这个是因为无法确定到底选择哪个控制器来响应该请求的缘故,当然你认为只要我们不新建重名的控制器就可以了,这样你只能控制你的项目中不出现,但是你却无法控制你加载的类库中不会出现,但是ASP.NET MVC已经提供了解决方案给我们,如下改正

RouteConfig.cs:

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new[] { "MvcStudy.Controllers" }
            );
        }
    }

 我们可以看到namespaces参数,通过将命名空间的名称传进去就可以起到排除二义性的问题了。

 4.约束路由

上面我们有一个{id}用来捕获参数的,但是你也发现了它可以捕捉任何字符串等等,但是我们有时需要限制它,比如让它只能输入数字,那么我们就可以使用正则表达式去约束它。

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                constraints: new{id = @"^\d*$"},
                namespaces: new[] { "MvcStudy.Controllers" }
            );
        }
    }

 

ASP.NET MVC学习之路由篇

标签:out   数字   arp   ace   asp.net   default   二义性   conf   数据   

原文地址:http://www.cnblogs.com/cnki/p/6105553.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!