2009-09-24 11 views
72

मैं एएसपी.नेट एमवीसी एक्शन में रेफरर यूआरएल कैसे प्राप्त करूं? मैं कार्रवाई करने से पहले पृष्ठ पर वापस रीडायरेक्ट करने का प्रयास कर रहा हूं।मैं एएसपी.नेट एमवीसी एक्शन में रेफरर यूआरएल कैसे प्राप्त करूं?

+4

ध्यान रखें कि सभी उपयोगकर्ता-एजेंट (AKA ब्राउज़र) संदर्भकर्ता जानकारी नहीं भेजेंगे, और कुछ इसे नकली भी कर सकते हैं। – belugabob

उत्तर

123

आप संदर्भित URL प्राप्त करने के लिए Request.UrlReferrer का उपयोग भी कर सकते हैं यदि आप सीधे Request.ServerVariables शब्दकोश तक पहुंचना पसंद नहीं करते हैं।

+0

यह वही है जो मुझे चाहिए। धन्यवाद भाई! –

21
Request.ServerVariables["http_referer"] 

करना चाहिए।

6

आप इस

filterContext.RequestContext.HttpContext.Request.UrlReferrer.AbsolutePath 
+2

यह फ़िल्टर संदर्भ में काम करेगा, लेकिन कार्रवाई संदर्भ में नहीं, जैसा कि सवाल पूछा गया था। –

3

उपयोग कर सकते हैं सही करने के लिए उपयोग reffer यूआरएल आप इसे ViewModel को पारित करना चाहिए, ताकि कोशिश:

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() 
+1

हू, कभी भी एहर्सकोर को कभी भी एहसास नहीं हुआ एक वैध चर नाम है। यह कैसे है। – BVernon