Ich habe mir angesehen ASP.Net MVC leitet Legacy-URLs weiter, die Querystring-IDs an Controller-Aktionen weiterleiten und einige andere ähnliche Posts für das Legacy-URL-Routing, aber ich kann den Fehler nicht mehr erkennen "Die RouteData muss ein Element namens 'controller' enthalten -leerer Stringwert. " Wenn ich das online ansehe, habe ich keine Hinweise, um mein Problem zu lösen.
Ich habe die Legacy-Routing-Klasse implementiert, die im obigen Link beschrieben wird, und das habe ich in der Routing-Tabelle definiert:
%Vor%Wenn ich den Roach-Debugger von Phil Haack benutze, zeigt dies an, dass fooref.aspx eine Übereinstimmung hat, aber wenn ich den Route-Debugger ausschalte, erhalte ich den obigen Fehler. Wenn ich die Anweisungsreihenfolge umkehre, bekomme ich "Ressource nicht gefunden" für /ctprefer.aspx, was sinnvoll ist - so scheint es, dass das als eine gültige Route gefunden wird, wenn sie in die andere Reihenfolge gesetzt wird.
Wo muss ich diese fehlende Controller-Referenz angeben?
Haben Routinganforderungen für ASP.NET MVC 2 RTM geändert?
Sie können sich das URL-Rewrite-Modul ansehen für IIS. Es kann verwendet werden, um die alte URL in Ihre neuen MVC-URLs zu übersetzen, ohne Ihre App mit alten Routen zu "verschmutzen".
Weiß nicht, ob es zu Ihrer Lösung passt, aber es ist eine Alternative wert.
Tags und Links asp.net-mvc asp.net-mvc-routing