我们尝试在ASP.NET MVC应用程序中使用自定义路由来生成此URL : 'http://example.com/Person/unnecessaryinfo-42'. "unwantedinfo"是id的名称,它将使用户可以破解URL.以下是我们路线图的代码.这有效但我的控制器操作最终在id参数中以"unnecesaryinfo-42"结束.我可以在它到达控制器操作之前剥离"unwantedinfo-"吗?
routes.MapRoute("person_id", "person/{id}",
new { controller = "Customer", action = "Details" },
new { id = @"unnecessaryinfo-\d" });
Run Code Online (Sandbox Code Playgroud)
编辑:
这是我们最新的代码:
routes.MapRoute("person_id", "person/{unnecessaryinfo}-{id}",
new { controller = "Customer", action = "Details" },
new { id = @"[\d]{1,6}" });
Run Code Online (Sandbox Code Playgroud)
有关从ASP.NET MVC 2 In Action(第234页)进行路由的章节讨论了尽可能避免使用数据库ID,但如果必须使用它们,请添加其他信息以使URL可读.这就是我们正在尝试(不成功)的事情.数据库ID目前的范围是1到6位(并且可能随着时间的推移而增长).