Это зависит. В ASP. Net Core маршрутизация может быть настроена как обычная маршрутизация или как атрибутная маршрутизация.
Обычная маршрутизация настроена следующим образом:
routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
Здесь первый сегмент пути отображается на имя контроллера, второй - на имя действия, третий сегмент используется для необязательного идентификатора, используемого для сопоставления с объектом модели.
Как правило, файл контроллера имя обычно совпадает с именем класса контроллера. Следовательно, в обычной маршрутизации URL будет соответствовать имени файла.
URL http://localhost/Products/Index соответствует методу действия ниже в ProductsController.
[Route("[controller]")]
public class ProductsController : Controller
{
[HttpPost("Index")] // Matches 'Products/Index'
public IActionResult Index()
{
return View();
}
}
Маршрутизация атрибута
При маршрутизации атрибута имя контроллера и имена действий не играют роли в выборе действия. Следовательно, он не зависит от имени файла.
URL-адрес http://localhost/Items/All соответствует методу действия ниже в ProductsController.
public class ProductsController : Controller
{
[Route("Items/All")]
public IActionResult Index()
{
return View();
}
}
Аналогично, атрибут [Route] может быть добавлены как в контроллере, так и в методах действия. Тот же URL-адрес http://localhost/Items/All соответствует методу действия, показанному ниже:
[Route("Items")]
public class ProductsController : Controller
{
[Route("All")]
public IActionResult Index()
{
return View();
}
}
Для получения дополнительной информации см. Документы Microsoft на https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-3.1