URL重定向一个控制器和操作方法



我有一个项目,我正在做的是在ASP.NET MVC 5

他们使用了框架标准的默认URL结构。例如,AGM页面是这样构造的:

  • 控制器:家庭
  • 动作方式:AGM

在没有任何路由设置的情况下,要访问该页,您需要转到以下URL:

www.example.com/Home/AGM

这是URL发送给媒体。这个URL看起来很糟糕,我想实现一个更干净的URL结构,看起来像这样:

www.example.com/agm

我有这样的设置它在RouteConfig.cs文件:

routes.MapRoute(
name: "AGM",
url: "agm",
defaults: new { controller = "Home", action = "AGM" }
);

我想要实现的是,如果用户在www.example.com/Home/AGM类型,那么它需要像www.example.com/agm一样显示URL。相反,它显示为www.example.com/Home/AGM

我不确定如何实现这一点?

配置路由并在url中定义action

routes.MapRoute(
name: "AGM",
url: "{action}",
defaults: new { controller = "Home", action = "AGM" }
);

然后在AGM方法重定向到www.example.com/agm

if (Request.Path.ToLower() == "/home/agm")
{
return Redirect("/agm");
}

您可以简单地将[Route("AGM")][Route("Home/AGM")]添加到Action方法的顶部:

[Route("AGM")]
[Route("Home/AGM")]
public IActionResult AGM()
{
return View();
}