2017-05-24 9 views
-1

Ich arbeite in Asp.NET Core in VS 2015.Asp.NET Core Pfad Zeichenfolge

Ich versuche, das letzte Verzeichnis in einer URL zu bekommen.

ich derzeit string path = Context.Request.Path; bin mit, die, zum Beispiel, wenn ich die URL localhost.foo.com/bar/3 hätte, wäre es /bar/3 zurückkehrt, Gibt es eine Möglichkeit, die 3 nur zu bekommen? Die 3 wäre eine ID für ein Objekt in meinem Fall.

Und wenn nicht, gibt es eine bessere Möglichkeit, eine Objekt-ID zurückzugeben, die in der URL verwendet wird?

Antwort

0

Ypu können Ihre Zeichenfolge von / und erhalten letzte Element aufgeteilt:

string path = Context.Request.Path; 
var lastValue = path.Split('/').Last(); 
1

Sie sollten Routenparameter, um diese verwenden zu tun:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing

Wenn Sie den folgenden Code :

routes.MapRoute(
    name: "default", 
    template: "{controller=Home}/{action=Index}/{id?}"); 

Ihr con Troller Funktion in einem Parameter wie nehmen könnte:

public IHttpActionResult myFunc(int id) 

Wenn diese Route Vorlage nicht Ihre genaue Situation passt, Sie zusätzliche Route Vorlagen hinzufügen könnte, so dass die Parameter abgebildet werden, oder Sie können eine individuelle Route zu den Attribute hinzufügen auf Ihre Funktion, um die Parameter zu erhalten, die Sie suchen.

+0

Ich habe Route Parameter, ich habe eine IActionResult Methode in meinem Controller dauert zwei IDs als Parameter, ich versuche nur, um die ID aus der URL, um sie an die Methode zu übergeben. –

+0

Wenn Sie sie als Routenparameter haben, gibt es einen Grund, warum Sie sie nicht einfach von der Controller-Methode übergeben können, die sie erfasst. Es tut mir leid, wenn ich etwas Offensichtliches vermisse. –