Это зависит. В 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
person
Bob Ash
schedule
03.02.2020