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

时间:2018-03-11 20:22:26

标签: .net-core asp.net-core-mvc

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

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

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

/Manage/Index«这绝对是/Manage

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

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

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

1 个答案:

答案 0 :(得分: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