【发布时间】:2015-02-24 09:22:40
【问题描述】:
这就是我设计 RegisterRoutes 功能的方式。并根据条件选择 HomeController 的操作。到目前为止一切顺利。
string env = "Index";
if (some condition from config)
{
env = "Test";
}
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = env, id = "" }
);
如果不指定操作(例如:正在调用 SampleController)“env”(在 RegisterRoutes 中设置的被调用。如果 env 设置为“Index " 如果设置了 env,则会调用索引操作 "Test" 在所有其他控制器中也会调用测试操作。
我的意图是只为 HomeController 设置此条件,对于所有其他控制器,我希望 Index 成为默认操作。
我该如何进行这项工作?是否可以动态更改所有其他控制器的操作?有没有更好的方法可以做到这一点。
分享你的建议
谢谢
【问题讨论】:
-
您可以为
"Home/{action}/{id}", new { controller = "Home", action = env }和默认路由"{controller}/{action}/{id}", new { controller = "Home", action = "Index" }创建一个特定路由 -
@StephenMuecke 谢谢!我试过了,但总是调用默认路由?
-
你把
"Home/{action}/{id}"放在第一位了吗? (顺序很重要)
标签: asp.net-mvc asp.net-mvc-routing