हो सकता है कि यह सबसे अच्छा तरीका नहीं है, लेकिन यह काम करता है।
// Here is your path
String p = photosLocation + "whatever.jpg";
// Here is the page address
String pa = Page.Request.Url.AbsoluteUri;
// Take the page name
String pn = Page.Request.Url.LocalPath;
// Here is the server address
String sa = pa.Replace(pn, "");
// Take the physical location of the page
String pl = Page.Request.PhysicalPath;
// Replace the backslash with slash in your path
pl = pl.Replace("\\", "/");
p = p.Replace("\\", "/");
// Root path
String rp = pl.Replace(pn, "");
// Take out same path
String final = p.Replace(rp, "");
// So your picture's address is
String path = sa + final;
संपादित करें: ठीक है, किसी को मददगार के रूप में चिह्नित नहीं किया गया है। कुछ स्पष्टीकरण: वर्तमान पृष्ठ का भौतिक पथ लें, इसे दो भागों में विभाजित करें: सर्वर और निर्देशिका (जैसे c: \ inetpub \ whatever.com \ whatever) और पृष्ठ का नाम (जैसे/Whatever.aspx)। छवि के भौतिक पथ में सर्वर का पथ होना चाहिए, इसलिए उन्हें "घटाना", केवल सर्वर के सापेक्ष छवि के पथ को छोड़ना (जैसे: \ design \ picture.jpg)। बैकस्लाश को स्लेश के साथ बदलें और इसे सर्वर के यूआरएल में संलग्न करें।
मुझे किसी भी .NET संस्करणों के लिए दस्तावेज़ में HttpRequest के ResolveUrl सदस्य नहीं मिल रहे हैं। क्या आप एएसपी.NET एमवीसी का उपयोग कर रहे हैं? – Jared
@ फ्रेड्रिक के रूप में जेरेड ने इंगित किया है कि HttpRequest ऑब्जेक्ट में यह विधि नहीं है। यह पृष्ठ वस्तु या वेब नियंत्रण ऑब्जेक्ट में पाया जा सकता है। क्या आप इसे प्रतिबिंबित करने के लिए अपना उत्तर संपादित कर सकते हैं? –
'ResolveUrl'' System.Web.HttpRequest' – adripanico