Ik werk aan een ASP.NET MVC-app. Ik heb alleen de standaard routeringsregel gebruikt. Ik heb een aantal weergaven die formulieren weergeven met behulp van code zoals deze:
@using (Html.BeginForm("ForgotPassword", "Register", FormMethod.Post))
Dit werkte prima. De formulieractie zou posten naar /myapp/register/forgotpassword
en alles werkt geweldig.
Nu moet u enkele service-eindpunten toevoegen aan dezelfde applicatie. Dus ik heb een aantal nieuwe routes toegevoegd boven de standaard. De routing-setup ziet er nu als volgt uit:
//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
);
Nadat ik de nieuwe regel heb toegevoegd, zijn al mijn formulieren gebroken. Bij het inspecteren van de HTML kan ik zien dat de formulieractie /mijnapp/api/user? Action = ForgotPassword & amp; controller = Register '
is, wat helemaal verkeerd is.
Dus mijn vraag is: hoe routeer ik de nieuwe dienst zonder al mijn bestaande formulieren te verbreken?
En voor bonuspunten: wat is hier in vredesnaam aan de hand?