Ich habe ein Problem mit dem Umschreiben von URLs, das in Global.asax aber nicht in OWIN-Middleware funktioniert.
Global.asax-Code
%Vor%OWIN-Middleware-Code (wird für die Kulturerkennung verwendet, der Code wird verkürzt)
%Vor%Ich erwarte, dass "Globale" Aktion des Controllers "Home" aufgerufen wird ... aber stattdessen wird die Standardaktion "Index" aufgerufen.
Nachdem der Pfad geändert wurde context.Request.Uri.AbsoluteUri
ist http://localhost/Global/Home
Aber Controller Request.Url.AbsoluteUri
ist immer noch http://localhost
Ich habe sogar context.Environment["owin.RequestPath"] = "/Home/Global";
ausprobiert, aber das scheint auch nicht zu funktionieren.
Bevor jemand fragt, ja, rufe ich die IAppBuilder.Use(typeof(GlobalizationMiddleware))
in Startup.cs auf und der Debugger gibt die Invoke-Methode ein.
Was mache ich falsch?
BEARBEITEN
Ich habe sogar versucht, auf System.Web
zu verweisen und dann funktioniert das auch nicht: (
BEARBEITEN 2 - Ich habe eine funktionierende Lösung gefunden (siehe unten), aber ich bin mir nicht sicher, ob es die richtige Lösung ist, Kommentare würden mir gefallen:)
Ich habe eine funktionierende Lösung gefunden.
Leider musste ich System.Web hinzufügen. Ich ändere direkt das RouteData-Objekt im RequestContext.
%Vor%Aber das fühlt sich für meinen Geschmack zu hacky an ... Ich bin nicht sicher, ob dies die richtige Lösung ist, also werde ich das nicht als gültige Antwort akzeptieren, vielleicht wird jemand mit einer besseren Lösung kommen.
Tags und Links c# asp.net owin asp.net-mvc-5