web-dev-qa-db-fra.com

Comment obtenir l'URL de référence dans une action ASP.NET MVC?

Comment obtenir l'URL de référence dans une action ASP.NET MVC? J'essaie de rediriger vers la page avant d'appeler une action.

83
Ryall

Vous pouvez utiliser Request.UrlReferrer pour obtenir l'URL de référence également si vous n'aimez pas accéder à Request.ServerVariables dictionnaire directement.

139
Derek Lawless
Request.ServerVariables["http_referer"]

Devrait faire.

20
Daniel Elliott

Vous pouvez utiliser ceci

filterContext.RequestContext.HttpContext.Request.UrlReferrer.AbsolutePath
7
Navish Rampal

Pour corriger l'utilisation de l'URL reffer, vous devez la transmettre à viewModel, essayez donc:

public interface IReferrer
{
    String Referrer { get; set; }
}

...

public static MvcHtmlString HiddenForReferrer<TModel>(this HtmlHelper<TModel> htmlHelper) where TModel : IReferrer
{
    var str = htmlHelper.HiddenFor(_ => _.Referrer);
    var referrer = HttpContext.Current.Request.UrlReferrer.AbsoluteUri;
    return new MvcHtmlString(str.ToHtmlString().Replace("value=\"\"", String.Format("value=\"{0}\"", referrer)));
}

...

@Html.HiddenForReferrer()
3
Andrey Burykin