Мы пытаемся использовать настраиваемые маршруты в приложении ASP.NET MVC для создания этого URL: 'http://example.com / Person / undefinedinfo-42 '
. «Ненужная информация» - это имя идентификатора, который сделает URL-адрес доступным для взлома. Ниже приведен код нашей карты маршрутов. Это работает, но действие моего контроллера заканчивается "undecesaryinfo-42" в параметре id. Можно ли убрать "ненужную информацию-" прежде чем он достигнет действия контроллера?
routes.MapRoute("person_id", "person/{id}",
new { controller = "Customer", action = "Details" },
new { id = @"unnecessaryinfo-\d" });
Изменить:
Вот наш последний код:
routes.MapRoute("person_id", "person/{unnecessaryinfo}-{id}",
new { controller = "Customer", action = "Details" },
new { id = @"[\d]{1,6}" });
В главе о маршрутизации из ASP.NET MVC 2 в действии (страница 234) обсуждается отказ от использования идентификаторы базы данных, когда это возможно, но если вы должны их использовать, добавление дополнительной информации, чтобы сделать URL-адрес читаемым. Это то, что мы пытаемся (безуспешно) сделать. Идентификатор базы данных в настоящее время составляет от 1 до 6 цифр (и может со временем увеличиваться).