2013-06-13 10 views
7

abrufen Ich möchte die gleiche Funktionalität wie Url.Action, aber außerhalb des Controllers. Ist das möglich?Aktions-URL in MVC4 .NET-Klasse

Während ich sicher bin, dass ich es anderswo verwenden werde, ist mein derzeitiger Wunsch, Aktions-URLs in einem Ansichtsmodell zu generieren.

+0

Ihre eigene Erweiterung erstellen Methode nur durch Anfügen von Zeichenfolgen zusammen .. –

+1

mögliche Duplikate von [Call UrlHelper in Modellen in ASP.NET MVC] (http://stackoverflow.com/questions/2031995/call-urlhelper-in-models-in-asp-net- mvc) –

Antwort

20

Sie können eine UrlHelper Ihrer Ansicht nach Modell instanziiert, etwa so:

UrlHelper helper = new UrlHelper(HttpContext.Current.Request.RequestContext); 

Dann können Sie diese verwenden, genauso wie die, die Sie in Ihrer Ansicht verwenden:

string actionUrl = helper.Action("MyAction", "MyController"); 
+0

Ich [lies hier] (http://stackoverflow.com/a/115822 07/1037948), die Sie vermeiden möchten 'HttpContext.Current' - nicht sicher, ob das hier anwendbar oder sogar möglich ist. – drzaus

+0

@drzaus dies ist nicht ASP.NET Web API, also nein, es ist hier nicht anwendbar. –