首页 文章

不必要的Dotnet Core MVC“Home”和“Index”URL组件?

提问于
浏览
2

Dotnet Core 2.0 MVC的默认路由和URL生成会产生非常奇怪的URL . 我不记得它们在ASP.Net MVC中是这样的 .

即,在使用Dotnet Core MVC模板创建新站点时,我们会看到生成以下URL:

/Home/About «我本来可以发誓这只是 /About

/Manage/Index «这绝对是 /Manage

在第一个示例中,这与当前的ASP.NET MVC(.NET模板)模板中的相同 . 我不记得在URL中看到“Home”了 . 这看起来很奇怪 . 为什么不只是/关于?

在第二个例子中,ASP.NET MVC(.NET模板)和Dotnet Core之间存在差异 . 最后的“指数”显然是多余的 .

有谁知道这里有什么?有没有一种简单的方法来更改默认路由定义来清理它?

1 回答

  • 1

    看一下可用于以这种方式声明路由的属性路由:

    public class HomeController : Controller
    {
       [Route("")]
       [Route("Home")]
       [Route("Home/Index")]
       public IActionResult Index()
       {
          return View();
       }
       [Route("Home/About")]
       public IActionResult About()
       {
          return View();
       }
       [Route("Home/Contact")]
       public IActionResult Contact()
       {
          return View();
       }
    }
    

    https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing#attribute-routing

相关问题