2013-01-24 1775 views
5

मेरे पास मेरा स्थानीय होस्ट और एक लाइव साइट है। मैं एक यूआरएल है और अगर इसकी में स्थानीय होस्ट यूआरएल स्थानीय होस्ट/साइट/thank_you.aspx जाना चाहिए और अगर इसकी लाइव http://mylivesite.com/thank_you.aspxस्थानीयहोस्ट और लाइव साइट के लिए Request.URL

मैं पीछे मेरी कोड में यह कोशिश की है ...

MyHiddenField.Value = Request.URL + "/thank_you.aspx"; 

लेकिन यह लौटे जिस पृष्ठ पर मैं था /thank_you.aspx

मैं क्या गलत कर रहा हूं?

+0

क्यों एक रिश्तेदार पथ का उपयोग नहीं: 'MyHiddenField.Value =" /thank_you.aspx ",'? – Alex

+0

@Alex शायद इसका उपयोग ईमेल के लिए एक लिंक बनाने के लिए किया जा रहा है, आदि – MikeSmithDev

+0

क्या आपका मतलब है कि 'http: // localhost/something'' http: // localhost/site/thank_you.aspx' पर जाना चाहिए, लेकिन कि 'http: // mylivesite.com/something' को http: // mylivesite.com/thank_you.aspx' पर जाना चाहिए? 'Localhost' पर आपकी वेबसाइट कहां है? –

उत्तर

8

भी इस प्रयास करें योजना, मैं भी जोड़ा, अगर आप https :)

संपादित जाना: इसके अलावा जोड़ा बंदरगाह (धन्यवाद एलेक्स) आदेश सुपर duper सुपर भविष्य प्रूफ होने के लिए :)

MyHiddenField.Value = string.Format(
    "{0}://{1}{2}/thank_you.aspx", 
    Request.Url.Scheme, 
    Request.Url.Host, 
    Request.Url.IsDefaultPort ? string.Empty : ":" + Request.Url.Port); 

संपादित करें: @MikeSmithDev से एक और अच्छा सुझाव है, एक समारोह में रख

public string GetUrlForPage(string page) 
{ 
    return MyHiddenField.Value = string.Format(
     "{0}://{1}{2}/{3}", 
     Request.Url.Scheme, 
     Request.Url.Host, 
     Request.Url.IsDefaultPort ? string.Empty : ":" + Request.Url.Port, 
     page); 
} 

तो फिर तुम कर सकते हैं:

MyHiddenField.Value = GetUrlForPage("thank_you.aspx"); 
+0

@Alex इसके लिए धन्यवाद :) – mattytommo

+1

आपका स्वागत है :) इसके अलावा, किसी को पोर्ट नंबर के लिए देखना चाहिए यदि यह कुछ तैनाती परिदृश्य में 80 नहीं है। Https विकल्प के लिए – Alex

+1

+1। ओपी के लिए एक और अच्छा विचार यह है कि इसे एक वैश्विक कार्य करना है जिसे वह 'मेकURL ("/ thank_you.aspx")' – MikeSmithDev

2

है निर्मित एक वर्ग UriBuilder

var url = Request.Url; 
var newurl = new UriBuilder(url.Scheme, url.Host, url.Port, "thank_you.aspx") 
       .ToString(); 
0

ऊपर उत्तर देने के लिए जोड़ा जा रहा है। रिश्तेदार पथों को संभालने के लिए फ़ंक्शन को अनुमति दें। उदाहरण के लिए: ~/या ~/परीक्षण/default.aspx

public string GetUrlForPage(string relativeUrl) 
{ 
    return string.Format(
     "{0}://{1}{2}{3}", 
     Request.Url.Scheme, 
     Request.Url.Host, 
     Request.Url.IsDefaultPort ? string.Empty : ":" + Request.Url.Port, 
     Page.ResolveUrl(relativeUrl)); 
} 
संबंधित मुद्दे