将控制器和操作方法重定向到它的 URL
Redirecting a controller and action method to its 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");
}
您只需在 Action 方法顶部添加 [Route("AGM")]
和 [Route("Home/AGM")]
:
[Route("AGM")]
[Route("Home/AGM")]
public IActionResult AGM()
{
return View();
}
我有一个项目是在 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");
}
您只需在 Action 方法顶部添加 [Route("AGM")]
和 [Route("Home/AGM")]
:
[Route("AGM")]
[Route("Home/AGM")]
public IActionResult AGM()
{
return View();
}