Laden...

Problem mit HtmlHelper.ActionLink

Letzter Beitrag vor 13 Jahren 2 Posts 749 Views
Problem mit HtmlHelper.ActionLink

Hallo zusammen
Ich muss aus einem Controller heraus einen Actionlink erstellen und wollte hierfür HtmlHelper.ActionLink verwenden. Hierfür habe ich auch den Namespace System.Web.Mvc.Html eingebunden aber leider bekomme ich dennoch eine Fehlermeldung, dass es diese Methode (ActionLink) nicht gibt 😕
Weis vielleicht jemand von euch, was ich falsch mache?

Beste Grüsse

Zum Thema ActionLinks sollte man sich folgendes im Klaren sein: [erledigt] MVC 3 und Strongly Typed Actionlink

Aber ja, Du hast im Controller keinen direkten Zugriff auf das Erstellen von ActionLinks.
Ich mache das generell - aufgrund von der Performance - aber nur über Routes. Das sollte man aber NUR machen, wenn man zB damit automatisiert E-Mails mit Links verwenden will. Ansonste gehört das in die View - und ansonsten nirgens hin.
Ein kleines Snippet hierzu:


#region Singleton
var request = new HttpRequest( "/", "myDomain/myMachine" );
var response = new HttpResponse( new StringWriter( ) );
var currentContext = new HttpContext( request, response );

var httpContextBase = new HttpContextWrapper( currentContext );
var routeData = new RouteData( );
var requestContext = new RequestContext( httpContextBase, routeData );
#endregion

var uh = new UrlHelper( requestContext  );

string vUrl = uh.RouteUrl( "MyDefinedRouteName );

var uri = new Uri( requestContext.HttpContext.Request.Url, vUrl );

Ich persönlich speicher das ganze ein mal beim Start der Anwendung requestContext in einem Singleton ab und kann anschließend überall darauf zugreifen.