Legacy-URL-Umschreibung mit Abfragezeichenfolgenparametern

9

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?

    
John Kaster 27.03.2010, 03:46
quelle

2 Antworten

2

Die Lösung besteht darin, direkt einen IHttpHandler anstelle eines MVCHandler zu verwenden. Ich habe einen Code gepostet, der mit MVC 3 in meinem Blog funktioniert: Ссылка

... Stefan

    
Stefan 27.04.2011, 05:08
quelle
0

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.

    
Jakub Konecki 31.12.2010 14:50
quelle