Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将根请求路由到此控制器并在MVC中执行操作_C#_Asp.net_.net_Asp.net Mvc - Fatal编程技术网

C# 将根请求路由到此控制器并在MVC中执行操作

C# 将根请求路由到此控制器并在MVC中执行操作,c#,asp.net,.net,asp.net-mvc,C#,Asp.net,.net,Asp.net Mvc,我有一个URL请求,格式如下:http://localhost/activate?activationCode=X 我希望通过Activate操作在Home控制器中处理此请求 我不知道如何进行。我已经查看了RouteConfig.cs并了解了此处定义路线的方式: routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home",

我有一个URL请求,格式如下:
http://localhost/activate?activationCode=X

我希望通过
Activate
操作在
Home
控制器中处理此请求

我不知道如何进行。我已经查看了
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
继续主机名转到
主控制器,并且
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)