Используйте действие другого контроллера для действия Индекс Домашнего контроллера - PullRequest
1 голос
/ 05 августа 2010

Я думаю, что это довольно распространенный сценарий, но я не смог сформулировать мою проблему таким образом, чтобы получить какие-либо полезные результаты поиска. Я бы хотел, чтобы действие Index моего HomeController вернуло действие от другого контроллера.

Я предложил несколько решений, но отклонил каждое по разным причинам:

  • Использование RedirectToAction не кажется правильным решением, так как RedirecToAction приводит к HTTP 303, который для домашней страницы сайта кажется неправильным.
  • Создание экземпляра другого контроллера и вызов его действия из действия HomeController Index; эта опция просто плохо пахнет.
  • Размещение тех же зависимостей, что и у другого контроллера, на HomeController и использование тех же методов хранилища. Хотя это самый простой из предложенных мною вариантов, он выглядит как полицейский.

Итак, что мне здесь не хватает? Предоставляет ли среда ASP.NET MVC «правильный» способ сделать это?

1 Ответ

3 голосов
/ 05 августа 2010

Как насчет использования механизма маршрутизации для этого?

routes.MapRoute(
"Special", 
"Home/Index/{id}", 
new { controller = "OtherController", action = "OtherAction", 
id = UrlParameter.Optional }
);

Не забудьте поставить более конкретные маршруты перед менее конкретными.

С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...