确认ASP.NET MVC中正在使用路由

时间:2012-02-16 17:03:47

标签: asp.net-mvc url routes

我想为用户提供客户路线,以便他们选择他们的网址名称。

http://example.com/customer-name

我可以验证他们输入的名称是否尚未在我们的路线中注册?就像有人输入“约”,http://example.com/about一样,我可以告诉他们名称已经被使用,因为我们有一个关于页面。

2 个答案:

答案 0 :(得分:0)

您应该为用户定义的路线使用贪婪路线。路线注册如下:

routes.MapRoute("customCustomerRoute",
                "{*customerName}", 
                new { controller = "Customer", action = "Home" }
        );

并且应该在你的路线的尽头,以便它不会吃掉其他路线。

然后,您可以将客户名称路径存储在数据库中,并在用户想要创建新路径之前查找该路径。

您可以使用以下代码获取所有可能的现有路线:

var routes = new RouteCollection();
MvcApplication.RegisterRoutes(routes);

然后,您可以看到这些路线是否包含要注册的网址。

答案 1 :(得分:0)

我会将所有客户路线放在'文件夹'中,即。 http://example.com/account/customer-name。那里没有冲突。

或者将所有其他“硬编码”控制器放在某个区域,并禁止将其用于客户端。