繁体   English   中英

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

[英]Confirm that a route is in use in ASP.NET MVC

我想为用户选择他们的url名称的用户做客户路线。

http://example.com/customer-name

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

您应该对用户定义的路由使用贪婪路由。 路线注册如下所示:

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

并且应该走在路线的尽头,以免其他路线被吃光。

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

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

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

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

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

或将所有其他“硬编码”控制器放在一个区域中,并禁止该控制器供客户端使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM