8
Ho il seguente percorso definito:Perché GetVirtualPath non riuscendo dopo l'aggiornamento a .NET 4
var route = new Route("{id}/{a}/{b}", new MvcRouteHandler());
route.Defaults = new RouteValueDictionary(new { controller = "Home", action = "Show" });
route.Defaults.Add("a", "");
route.Defaults.Add("b", "");
E il seguente codice di controllo:
public ActionResult Show(int id)
{
RouteValueDictionary routeValues = new RouteValueDictionary();
routeValues["Controller"] = "Home";
routeValues["Action"] = "Show";
routeValues["id"] = 1;
var requestContext = new RequestContext(this.HttpContext, RouteData);
var rv = route.GetVirtualPath(requestContext, routeValues);
// when targetting .NET 4 rv is null, when its 3.5 it is "/1"
}
Perché questo codice di ritorno di un percorso in .NET 3.5 e non in .NET 4.0?
uno dei metodi che si chiama è stato aggiornato per contenere i nuovi parametri facoltativi in .net 4? Ho visto questo causare problemi in quanto cambia il modo in cui funziona il binding. – GreyCloud
Yerp qualcosa è cambiato con il processo di associazione. Ho notato che funziona quando ho solo un parametro opzionale. Non sto usando il nuovo .net 4 params opzionale –
Questo sembra essere un leggero cambiamento di rottura. Ci sto guardando e seguirò. – Haacked