我正在尝试路由一个没有静态操作的URL,即用户可以创建可以用任何字符串表示的系统。我想要一个如下的URL:
http://yousite.com/System/WIN1234/Configure
默认情况下,路由机制认为WIN1234是动作,而我希望能够捕获WIN1234并决定抛出哪种方法。如:
public void RouteSystemRequest(string system, string action)
{
switch (action)
{
case "Configure":
ConfigureSystem(string system);
break;
}
}
我怎样才能做到这一点?这是合乎逻辑的还是我认为这一切都错了?
答案 0 :(得分:1)
您需要做的是什么。您需要设置指向系统操作的默认路由,并且您需要接受其他值作为操作的参数。
//General
routes.MapRoute(
"Default7", // Route name
"{action}/{param1}/{param2}", // URL with parameters
new { controller = "Home", action = "Index", param1 = "", param2 = "" } // Parameter defaults
);
在您的代码中,您将获得值Win1234和配置为默认值。
然后,您可以实现切换逻辑并使用RedirectToAction移动到您想要的操作。