2016-10-23 1 views
2

ich die absolute URL von einigen Aktionen in ASP.NET Core 1.0.1 bekommen müssen:Erhalten Sie absolute Route der Aktion in ASP.NET Core-

public IActionResult Test(IUrlHelper urlHelper) { 
    var url = urlHelper.Action(nameof(HomeController.Index), Request.Scheme) 
    return Ok(url); 
} 

Oder

public IActionResult Test(IUrlHelper urlHelper) { 
    var url = urlHelper.RouteUrl(nameof(HomeController.Index), Request.Scheme) 
    return Ok(url); 
} 

Keines Das gab mir die Absolute Url der Home Route.

Wie kann ich das tun?

+0

Ich bin mir nicht ganz sicher, ob es möglich ist, zu erreichen, aber theoretisch können mehrere Wege Ihrer Aktion zugeordnet werden, z. Wie wollen Sie die absolute URL erhalten, wenn mehrere Routen zur gleichen Aktion führen können? –

+0

Sorry, ich verstehe nicht, was du meinst. Ich versuche nur, die Absolute Route zu bekommen ... Ich postete Beispiele dafür, was ich versuchte, dasselbe zu erreichen, aber keinen Erfolg –

+0

Wenn ich Ihre Frage richtig verstanden habe, haben Sie eine Aktion auf dem Controller (zB HomeController.Index) und Sie wollen um eine URL mit diesen Namen zu erhalten (zB www.myapp.com/home/index)? Wenn es solche gibt, kann es mehrere Zuordnungen geben (d. H. Viele URLs, die zu derselben Route führen), und die einzige Möglichkeit, sie zu lesen, stammt wahrscheinlich vom Router. –

Antwort

1

Zuerst die relative URL abrufen, dann die absolute URL abrufen und den Url-Klassenkonstruktor mit zwei URLs verwenden. Here ist eine akzeptierte Antwort auf ähnliche Frage für ASP.NET MVC6, beachten Sie, dass MVC6 became ASP.NET Core later on.

Verwandte Themen