Je migration récemment mon ASP.Net application MVC 1 de VS.Net 2008/C# 3.5 à VS.NET 2010/C# 4.0. J'ai utilisé massivement un générateur pour obtenir des chaînes d'URL à partir des appels fortement typés. Il ressemble à ceci:LinkBuilder.BuildUrlFromExpression ne fonctionne plus dans .Net 4/VS 2010?
// sample call :
string toSamplePage = Url.To<SampleController>(c => c.Page(parameter1, parameter2));
le code est ajouté comme une extension de la valeur par défaut UrlHelper:
public static string To<Tcontroller>(UrlHelper helper, Expression<Action<Tcontroller>> action) where Tcontroller : Controller
{
// based on Microsoft.Web.Mvc.dll LinkBuilder
return LinkBuilder.BuildUrlFromExpression<Tcontroller>(helper.RequestContext, helper.RouteCollection, action);
}
Le seul problème de ce fait, est la référence à dll Microsoft.Web.Mvc , mais le gain de lisibilité en valait la peine.
Problème: cela ne marche plus, retourne (nul) quels que soient les paramètres.
Questions:
est-il une meilleure façon de créer des liens maintenant d'une expression? (oui, j'ai essayé de google sans succès)
Y at-il un truc pour que l'ancien LinkBuilder.BuildUrlFromExpression fonctionne? J'ai essayé de le recompiler en C# 4.0, mais le problème est qu'il implique de travailler sur ma propre version compilée de System.Web.Mvc qui n'est pas une option.
J'essaie actuellement de migrer vers MVC 2 mais j'ai encore des questions ... En attente de vos suggestions ...