Jak uzyskać adres URL strony odsyłającej w akcji ASP.NET MVC? Próbuję przekierować z powrotem na stronę, zanim wywołałeś akcję.
Jak uzyskać adres URL strony odsyłającej w akcji ASP.NET MVC? Próbuję przekierować z powrotem na stronę, zanim wywołałeś akcję.
Odpowiedzi:
Możesz również użyć, Request.UrlReferrer
aby uzyskać odsyłający adres URL, jeśli nie lubisz Request.ServerVariables
bezpośredniego dostępu do słownika.
Request.UrlReferrer
jest w rzeczywistości identyfikatorem URI, ale stamtąd możesz uzyskać wszystko, czego potrzebujesz, jeśli chodzi o adres URL strony odsyłającej. (Więcej informacji o URI i URL: stackoverflow.com/questions/176264/ ... ).
Request.ServerVariables["http_referer"]
Powinieneś zrobić.
Możesz tego użyć
filterContext.RequestContext.HttpContext.Request.UrlReferrer.AbsolutePath
Możesz przekazać adres odsyłający do viewModel, moim zdaniem jest to lepsze podejście niż udostępnianie przez stan, spróbuj:
public interface IReferrer
{
String Referrer { get; set; }
}
...
public static MvcHtmlString HiddenForReferrer<TModel>(this HtmlHelper<TModel> htmlHelper) where TModel : IReferrer
{
var str = htmlHelper.HiddenFor(hh => hh.Referrer);
var referrer = HttpContext.Current.Request.UrlReferrer.AbsoluteUri;
return new MvcHtmlString(str.ToHtmlString().Replace("value=\"\"", String.Format("value=\"{0}\"", referrer)));
}
...
@Html.HiddenForReferrer()