2010-09-09 13 views
7
Page aspxHandler = (Page)PageParser.GetCompiledPageInstance(virtualPath, context.Server.MapPath(virtualPath), context); 

aspxHandler.PreRenderComplete += AspxPage_PreRenderComplete; 
aspxHandler.ProcessRequest(context); 

बनाए रखने जब आप इस के बाद Page.Request.Url कहते हैं, आप जिस पृष्ठ परयूआरएल asp.net में नए सिरे से लिखना लेकिन मूल यूआरएल

को दुबारा लिखा की यूआरएल ... मैं क्या देख रहा हूँ मिल के लिए एक पुनर्लेखन करना है, लेकिन पेज के लिए। request.Url को पारित मूल यूआरएल के रूप में बने रहने के लिए। क्या यह संभव है?

उत्तर

10

मुझे web.config में पुनर्लेखन नियमों का उपयोग करके एक ही समस्या थी। सुनिश्चित नहीं है कि यह आपकी समस्या को भी हल करेगा, लेकिन मैंने पाया कि जब यूआरएल को फिर से लिखा गया था, मूल रूप से अनुरोध किया गया URL "HTTP_X_ORIGINAL_URL" सर्वर चर के माध्यम से सुलभ था।

वीबी:

string pathAndQuery = Request.ServerVariables.AllKeys.Contains("HTTP_X_ORIGINAL_URL") ? Request.ServerVariables("HTTP_X_ORIGINAL_URL") : Request.Url.PathAndQuery 

C#:

string pathAndQuery = Request.ServerVariables.AllKeys.Contains("HTTP_X_ORIGINAL_URL") ? Request.ServerVariables["HTTP_X_ORIGINAL_URL"] : Request.Url.PathAndQuery; 

है कि आप को फिर से लिखने से पहले अनुरोध के मूल पथ और क्वेरी स्ट्रिंग मिलना चाहिए या नहीं, को फिर से लिखने हुआ है।

+0

बस जो मैं खोज रहा था। धन्यवाद! –

+0

धन्यवाद, होम्स। +1 –

+0

ध्यान दें कि ऑलकेस एक सरणी है और इसमें एक विधि विधि प्रदान नहीं करता है –

संबंधित मुद्दे