2009-10-09 16 views
20

के पीछे कोड में वर्तमान पृष्ठ का पूरा यूआरएल प्राप्त करें SharePoint में आप उस कोड का यूआरएल कैसे प्राप्त करते हैं जो आप पीछे कोड से हैं? उदा। SPContext.Current.File: शामिल blah.aspx पेज के साथ ...SharePoint

SPContext.Current.Web.Url http://vm/en/

मैं साथ http://vm/en/Pages/blah.aspx

उत्तर

33

तुम अब भी HttpContext प्राप्त कर सकते हैं और उसके बाद का उपयोग HttpContext.Current.Request.Url

SPContext.Current.Web पृष्ठ पर हैं उसके आसपास के SPWeb है, और इस तरह इसके URL वेब का URL, नहीं पेज है।

+7

बस स्पष्ट होना, उपयोग करने के लिए पूर्ण पैरामीटर System.Web.HttpContext.Current.Request.Url –

+1

है ठीक है हाँ, वर्ग HttpContext System.Web नाम स्थान – Yuliy

+5

बस में है सावधान रहें यदि आप प्रबंधित पाथ और/_layouts/एप्लिकेशन पृष्ठों के साथ ऐसा कर रहे हैं। ex./sites/1/_layouts/page.aspx /_layouts/page.aspx – HaavardMeling

3

प्रयास करें: SPContext.Current.Web.Url + "/" + SPContext.Current.File.Url

1

यह लौटना चाहिए कि तुम क्या आवश्यकता SPContext.Current.ListItemServerRelativeUrl

0
string filename = Path.GetFileName(Request.Path); 
-1
string PageTitle=SPContext.Current.File.Title 
1

यह कोड मेरे लिए काम करता है, _layouts के अंतर्गत वाले पृष्ठों और साइट के नीचे 'सामान्य' पृष्ठों के लिए:

 string thisPageUrl; 
     if (HttpContext.Current.Request.Url.ToString().ToLower().Contains("_layouts")) 
     { 
      thisPageUrl = SPContext.Current.Web.Url + context.Request.Path; //note: cannot rely on Request.Url to be correct ! 
     } 
     else 
     { 
      thisPageUrl = HttpContext.Current.Request.Url.ToString(); 
     } 
+0

यह संभावित क्वेरी स्ट्रिंग को बाहर कर देगा। –

1

मैं उपयोग करता हूं वैकल्पिक हल जो _layouts मामलों को शामिल किया गया

/// <summary> 
/// Builds real URL considering layouts pages. 
/// </summary> 
private Uri CurrentUrl 
{ 
    get 
    { 
     return Request.Url.ToString().ToLower().Contains("_layouts") 
      ? new Uri(
       SPContext.Current.Site.WebApplication.GetResponseUri(
        SPContext.Current.Site.Zone).ToString().TrimEnd('/') 
       + Request.RawUrl) 
      : Request.Url; 
    } 
}