对主控制器的索引操作使用不同的控制器操作

时间:2010-08-05 14:21:10

标签: asp.net-mvc asp.net-mvc-2

我认为这是一种非常常见的情况,但我无法用我生成任何有用的搜索引擎结果的方式来表达我的问题。我希望Index的{​​{1}}操作可以从其他控制器返回操作。

我已经提出了一些解决方案,但由于各种原因而解散了每个解决方案:

  • 使用HomeController似乎不是正确的解决方案,因为RedirectToAction导致HTTP 303对于网站的主页似乎有误。
  • 实例化其他控制器并在RedirecToAction HomeController操作中调用其操作;这个选项闻起来很糟糕。
  • Index上放置与其他控制器相同的依赖项,并使用相同的存储库方法。虽然这是我提出的最简单的选择,但它看起来像是警察。

那么,我在这里错过了什么? ASP.NET MVC框架是否提供了一种“正确”的方法来实现这一目标?

1 个答案:

答案 0 :(得分:3)

如何使用路由引擎?

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

请记住在不太具体的路线之前放置更具体的路线。

问候。