Diese Frage ist spezifisch für ASP.NET, aber ich bin sicher, dass einige von Ihnen profitieren von System agnostic Javascript, die in vielen Situationen von Vorteil ist.
UPDATE: Die Art und Weise, wie die URL außerhalb der Seite selbst gebildet wird, ist in den obigen Antworten gut beschrieben.
Oder Sie könnten einen Einzeiler wie den folgenden machen:
new UrlHelper(actionExecutingContext.RequestContext).Action(
"SessionTimeout", "Home",
new {area = string.Empty},
actionExecutingContext.Request.Url!= null?
actionExecutingContext.Request.Url.Scheme : "http"
);
vom Filter oder:
new UrlHelper(this.Request.RequestContext).Action(
"Details",
"Journey",
new { area = productType },
this.Request.Url!= null? this.Request.Url.Scheme : "http"
);
Allerdings braucht man oft die URL der aktuellen Seite, für diese Fälle mit Html.Action
und die Angabe des Namens und des Controllers der Seite, auf der man sich befindet, erscheint mir unangenehm. In solchen Fällen ziehe ich es vor, stattdessen JavaScript zu verwenden. Dies ist besonders gut in Systemen, die halb umgeschrieben MVT halb Web-Formen halb vb-Skript halb Gott weiß was sind - und um URL der aktuellen Seite muss man jedes Mal eine andere Methode verwenden.
Eine Möglichkeit ist die Verwendung von JavaScript zum Abrufen der URL window.location.href
eine andere - document.URL