在ASP.NET Core中更改控制器路由

twe*_*ypi 5 c# routing asp.net-core-mvc asp.net-core

所以我有一个HomeController,要访问它,Actions我必须输入url.com/home/action.

是否有可能将此更改为url.com/anothernamethatpointstohomeactually/action

Bar*_*xto 15

我建议你使用属性路由,但当然这取决于你的场景.

[Route("prefix")]
public class Home : Controller {

    [HttpGet("name")]
    public IActionResult Index() {
    }

}
Run Code Online (Sandbox Code Playgroud)

这将在 url.com/prefix/name

属性路由有很多选项,一些示例:

[Route("[controller]")] // there are placeholders for common patterns 
                           as [area], [controller], [action], etc.

[HttpGet("")] // empty is valid. url.com/prefix

[Route("")] // empty is valid. url.com/

[HttpGet("/otherprefix/name")] // starting with / won't use the route prefix

[HttpGet("name/{id}")]
public IActionResult Index(int id){ ... // id will bind from route param.

[HttpGet("{id:int:required}")] // you can add some simple matching rules too.
Run Code Online (Sandbox Code Playgroud)

检查属性路由官方文档


小智 -1

您可以通过修改路由配置来更改您的 url。它有点像 htaccess 但又不完全一样。 https://learn.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/controllers-and-routing/creating-custom-routes-cs

另一个解决方案是创建一个页面并进行服务器重定向。

Server.Transfer
Run Code Online (Sandbox Code Playgroud)