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之间存在差异。最后的“指数”显然是多余的。
任何人都知道这里有什么?有没有一种简单的方法来更改默认路由定义来清理它?
答案 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