Я работаю над приложением ASP.NET MVC.Я использовал только правило маршрутизации по умолчанию.У меня есть несколько представлений, которые отображают формы с использованием кода, подобного этому:
@using (Html.BeginForm("ForgotPassword", "Register", FormMethod.Post))
Это работает нормально.Форма действия будет отправлять на /myapp/register/forgotpassword
, и все отлично работает.
Теперь нужно добавить несколько конечных точек службы в одно и то же приложение.Поэтому я добавил несколько новых маршрутов выше стандартного.Настройка маршрутизации теперь выглядит следующим образом:
//New rule
RouteTable.Routes.Add(
new ServiceRoute(
"api/user", new MyCustomerServiceHostFactory(),
typeof(UserWebservice)));
//Default rule
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
После добавления нового правила все мои формы сломались.Изучив HTML, я вижу, что действие формы /myapp/api/user?action=ForgotPassword&controller=Register'
, что совершенно неверно.
Итак, мой вопрос: как мне маршрутизировать новый сервис, не ломая все мои существующие формы?
А для бонусных баллов: какого черта здесь происходит?