Я использую обычную маршрутизацию в проекте ASP.Net MVC и хотел бы включить параллельную маршрутизацию атрибутов. Я создал следующее, но я получаю 404 на обычном маршруте при включении маршрутизации атрибутов
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Контроллер
[RoutePrefix("Registration")]
public class RegistrationController : Controller
{
[HttpGet]
[Route("Add/{eventId}")]
public ActionResult Add(int eventId)
{
}
}
Вызов
http://localhost/Registration/Add/1
Работает при звонке
http://localhost/Registration/Add?eventId=1
Больше не работает и отвечает 404 NotFound.
RegistrationController
, поэтому при маршрутизации на основе соглашений его маршрут:http://localhost/Registration/Add
, а неhttp:/localhost/Register/Add
- person Federico Dipuma   schedule 29.04.2018Route
) удаляет это действие из обычного маршрута. Обходной путь может состоять в том, чтобы определить другие атрибутыRoute
, чтобы сохранить старое поведение. - person Federico Dipuma   schedule 29.04.2018