У меня есть контроллер, который использует следующую структуру:
.com/Object/375
Тем не менее, я также могу использовать следующий URL, когда я получаю специальные права администратора
.com/Admin/Object/375
Я использую одни и те же пользовательские элементы управления, независимо от того, находитесь ли вы в разделе администратора или нет, но они оба указывают на один и тот же контроллер Объект . Мне нужно, чтобы ссылки поддерживали эту структуру URL, а не пытались пнуть пользователя Admin обратно в контроллер объекта. В настоящее время я использую метод имени маршрута, где это мои имена маршрутов (в global.asax):
"Admin/-Object"
"Object/-Object"
"Object-Object"
Эти названия маршрутов охватывают следующие маршруты:
Admin/Object, Admin/Object/555, Object, Object/323
Затем я использую следующее в ссылке на маршрут
Html.RouteLink(id, Request.Url.Segments[1] + "-Object", new { id = id })
Это прекрасно работает, но имеет странный запах - есть еще идеи?
Чтобы уточнить: мне нужно, чтобы URL был правильно создан на основе текущей структуры URL (с администратором или без него), и маршрутизация будет указывать на правильный контроллер (одинаковый для обоих URL), а конкретный контент администратора будет вставляется на страницу только в разделе администратора (на основе URL).