2009-03-26 7 views
0

J'essaye d'URLs du LinkBuilder dans Microsoft.Web.Mvc. À l'heure actuelle, j'ai:URLs fortement typées dans asp.net mvc

LinkBuilder.BuildUrlFromExpression (???, RouteTable.Routes, x => x.Index())

Mais je ne suis pas sûr de savoir comment le contexte de demande tous les cas. Par exemple. Si je suis dans un IHttpModule, est-il possible pour moi d'obtenir le contexte de la requête pour que je puisse créer une URL comme celle-ci?

Répondre

0

Si vous utilisez System.Web.Routing pour votre configuration MVC, vous pouvez mettre en œuvre un IRouteHandler (example) qui renvoie une nouvelle instance de votre classe personnalisée IHttpHandler. Puisque la logique pour instancier le HttpHandler va à l'intérieur de la méthode GetHttpHandler de l'IRouteHandler, et l'IRouteHandler a accès au route request context data, vous pouvez le passer dans le constructeur de votre HttpHandler et l'utiliser de manière appropriée.

+0

Peut-être qu'il me manque quelque chose, mais je ne vois pas comment cela aide lorsque vous essayez de créer une URL avec LinkBuilder, disons un HttpModule ou même un code traditionnel derrière. – pondermatic

+0

@Nick le LinkBuilder utilise le RequestContext de System.Web.Routing. Vous devez utiliser le routage pour obtenir RequestContext. J'ai expliqué comment créer un HttpHandler qui peut être utilisé dans un contexte de routage. –

Questions connexes