ASP.NET MVC-formulieracties voor serviceroutes

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?

1
heb je geprobeerd de volgorde van je toewijzingen te veranderen, zet standaard boven service één.
toegevoegd de auteur Emmanuel N, de bron

1 antwoord

probeer het gebruik zoals hieronder,

//New rule
RouteTable.Routes.Add(
    new ServiceRoute(
    "UserWebservice", 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
  );

Ik denk dat het wijzigen van de code voor route toevoegen als Referentie link zou moeten werken.  Bekijk ook deze blog voor het maken van Dynamische service routes .

0
toegevoegd
De route in het codevoorbeeld werkte niet. De Dynamic Service Route die u hebt gekoppeld, heeft echter de slag gemaakt. Bedankt!
toegevoegd de auteur Brian Reischl, de bron