2016-09-22 2 views
1

Я пытаюсь опустить «/ Index» из действий индекса в своем приложении. Я знаю, что есть миллион похожих сообщений, но мой кажется немного другим.Маршруты MVC - скрыть индекс

В принципе, я хочу установить мой «домашний» контроллер/действие на Time/Dashboard, но по-прежнему имеет значение «Index» для каждого другого контроллера.

Когда мой маршрут по умолчанию был «Главная» «Индекс». Остальные страницы были в порядке. «Индекс» скроется. Но потом я сменил его на «Dashboard». Итак, теперь, когда я перехожу к любому контроллеру/индексу. Он нуждается в «/ Index», иначе я получаю 404. Прямо сейчас это мои маршруты:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Time", action = "Dashboard", id = UrlParameter.Optional } 
     ); 
+0

Вам нужно изменить имя метода действия с 'index' на' dashboard' .. – mmushtaq

+0

Право. Я думаю, если бы все «Индексы» стали «Dashboard», пользователь никогда не узнает. Кажется, это немного дрябло. Но я понимаю, о чем вы. Почему я должен называть Dashboard как «Dashboard»? Я должен был бы назвать это «Индексом», потому что они никогда этого не увидели. Проблема в том, что пользователи, не прошедшие проверку подлинности, могут перейти на http/myapplication и посмотреть MyController/Index. И я не аутентифицировал пользователей, чтобы перейти на http/myapplication и посмотреть Time/Dashboard. Думаю, я могу просто решить это с помощью перенаправления –

ответ

0

Я думаю, это был глупый вопрос.

Фактическое название «дома» или действие по умолчанию не имеет большого значения, потому что никто его не увидит.

Поэтому я должен либо назвать этот «указатель», либо называть все мои другие страницы «Панель мониторинга».

Если у меня есть специальный случай, просто используйте RedirectToAction или даже верните другое представление, если я действительно хочу скрыть URL.

Смежные вопросы