我有一个项目,我正在做的是在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();
}