我有以下格式的URL请求:http://localhost/activate?activationCode=X
我希望通过Home
动作在Activate
控制器中处理此请求。
我不确定如何进行。我看过RouteConfig.cs
并查看此处定义路由的方式:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
但是,如何使
Home/Activate
处理以下格式的URL? http://localhost/activate?activationCode=X
...以便添加一个特殊情况,其中
activate
主机名前移到Home
控制器,然后执行Activate
动作? 最佳答案
您需要创建特定的路线
routes.MapRoute(
name: "Activate",
url: "Activate/{id}",
defaults: new { controller = "Home", action = "Activate", id = UrlParameter.Optional }
);
并将其放置在默认路由之前。
另外,如果要使用
http://localhost/activate/X
而不是http://localhost/activate?activationCode=X
,则将其更改为routes.MapRoute(
name: "Activate",
url: "Activate/{activationCode}",
defaults: new { controller = "Home", action = "Activate", activationCode = UrlParameter.Optional }
);
并在
HomeController
中创建方法public ActionResult Activate(string activationCode)
关于c# - 将根请求路由到此 Controller 并在MVC中执行操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37890974/