0

Ich suche nach einem Routing-System mit Aliasen mit ASP.NET Core erstellen.Wie haben Sie Routen-Aliase?

In meiner Datenbank habe ich alle meine Routen mit den entsprechenden Aliase, wenn ein Benutzer den Server meine App Suche nach der Route mit dem Aliasnamen anfragen.

Nun möchte ich die wiederhergestellte Route verwenden, um auf den richtigen Controller und die richtige Aktion zuzugreifen.

wird ein Beispiel als eine lange Rede deutlicher sein (was ich will ist in Klammern tun):

Der Benutzer myapp.com/hello/i/am/an/alias verbindet -> Die App findet die entsprechende Route, die/MyController/Index (-> die App MyController verwendet die Indexanzeige für den Benutzer zu senden)

Wenn jemand weiß, wie zu tun, nehmen i: D dank

Edit: Eigentlich desto besser wird es sein, den HttpContext zu bearbeiten, aber ich glaube nicht, dass es möglich ist

Antwort

0

Ok ausgeführt werden sollen, fand ich die Antwort !!

Es ist möglich, den Pfad im Kontext so bearbeiten: context.Request.Path = new PathString(newPath);

so habe ich eine MapWhen, die immer true zurück und bearbeitet die context.Request.Path mit der Antwort der Datenbank und die mapHandler rufen Sie einfach app .UseMvc:

private void HandleMap(IApplicationBuilder app) 
    { 
     app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 
     }); 
    } 

app.MapWhen(context => { 
      string newPath = findNewPath(); 

      context.Request.Path = new PathString(newPath); 

      return true; 
     }, HandleMap); 
0

Ich denke, dass Sie so etwas wie dies in der Configure-Methode von Startup.cs

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     name: "path1", 
     template: "hello/i/am/an/alias", 
     defaults: {controller="MyController", action="Index"}); 

    routes.MapRoute(
     name: "path2", 
     template: "i/am/another/alias", 
     defaults: {controller="MyOtherController", action="Index"}); 

    // etc. 
}); 
+0

ich vermute, er will es dynamisch und aus der Datenbank, wie die Schnecke (https://en.wikipedia.org/wiki/Semantic_URL#Slug) in CMS-Systemen verwendet werden, die den Weg für den Wiederaufbau erfordern würde, Tabellen jedes Mal, wenn ein neuer Slug zur Laufzeit erstellt wird, was nicht empfohlen wird – Tseng

+0

Ja Tseng, es ist etwas so wie das – LeCintas

Verwandte Themen