小编rkg*_*gos的帖子

如何从用户友好的URL中删除不必要的信息,然后才能进入控制器操作

我们尝试在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位(并且可能随着时间的推移而增长).

asp.net-mvc routes url-routing asp.net-mvc-2

5
推荐指数
1
解决办法
190
查看次数

标签 统计

asp.net-mvc ×1

asp.net-mvc-2 ×1

routes ×1

url-routing ×1