हम एक बटन पर अपने Href में BDF5555/45 से BD55555%2F45 तक फॉरवर्ड स्लैश के साथ SKU को बदलने के लिए Server.URLEncode का उपयोग कर रहे हैं।

enter image description here

जब कोई व्यक्ति बटन पर क्लिक करता है तो पृष्ठ दूसरे मॉड्यूल पर जाता है जिसमें Request.QueryString होता है लेकिन DNN URL बदल रहा होता है।

मैं &45 को BDF5555/45 के रूप में शामिल करने के लिए परिवर्तनीय decodeprodCode कैसे प्राप्त कर सकता हूं? शायद डीएनएन यूआरएल को फिर से लिख रहा है?

enter image description here

0
Tig7r 18 सितंबर 2018, 13:29

3 जवाब

सबसे बढ़िया उत्तर

DotNetNuke.Common.Globals में एक NavigateURL वर्ग है जो TabID और बहुत सारे अधिभार के आधार पर एक सही url उत्पन्न करेगा।

DotNetNuke.Common.Globals.NavigateURL(TabId)

आप क्वेरीस्ट्रिंग पैरामीटर का भी उपयोग कर सकते हैं

DotNetNuke.Common.Globals.NavigateURL(TabId, ControlKey,"key=value"))
1
VDWWD 18 सितंबर 2018, 23:19

डिफ़ॉल्ट रूप से डीएनएन यूआरएल में क्वेरीस्ट्रिंग मानों को/कुंजी/मान प्रारूप में फिर से लिख देगा, यह मानते हुए कि यह ठीक से एन्कोड किया गया है। उदाहरण के लिए यदि आपके पास sku=1 और productid = 2 के क्वेरीस्ट्रिंग मान हैं तो परिणामी URL होगा

https://yoursite.com/Your-Page/sku/1/productid/2

यह FriendlyUrlProvider के माध्यम से किया जाता है, लेकिन Request.Querystring के माध्यम से संसाधित करने की आपकी क्षमता पर इसका कोई प्रभाव नहीं होना चाहिए क्योंकि यह DNN में मानों को पारित करने के लिए एक बहुत ही सामान्य अभ्यास है।

मान प्राप्त करने के लिए आपका कोड सही है।

1
Mitchel Sellers 19 सितंबर 2018, 02:53

मैं Request.Querystring के बजाय निम्न कोड का उपयोग कर समाप्त हुआ।

 string RawurlFromRequest = Request.RawUrl;
 var cleanSKU = RawurlFromRequest.Split(new[] {"sku/"}, StringSplitOptions.None)[1];
 var CleanSKUNoOtherQueryStrings = cleanSKU.Split(new[] {"&"}, StringSplitOptions.None)[0];

Request.RawURL URL को विशेष वर्णों के साथ वापस लाता है क्योंकि यह एन्कोडिंग के बिना है। जैसा कि ऊपर उल्लेख किया गया है, DNN FriendlyURLProvider का उपयोग करता है जो URL को फिर से लिखता है।

उदाहरण के लिए www.mysite.com/ProductFilter/SKU/BDF5555/45 और नहीं www.mysite.com/ProductFilter/SKU/BDF55555%2F45

CleanSKU वैरिएबल SKU/ की तलाश करेगा और [1] पर सेट होने पर बाईं ओर सब कुछ विभाजित कर देगा।

बाईं ओर सब कुछ विभाजित होने के बाद, हम अन्य QueryStrings की तलाश करते हैं जिन्हें हम आमतौर पर & चिह्न के साथ जोड़ते हैं। हम सब कुछ दाईं ओर [0] पर सेट करके विभाजित करेंगे।

यह बैकएंड में एक फॉरवर्ड स्लैश के साथ BDF5555/45 को वापस लाएगा जिसका उपयोग हम अपने ERP सिस्टम से उत्पाद जानकारी प्राप्त करने के लिए कर सकते हैं जो URLdecode नहीं कर सका।

0
Tig7r 20 सितंबर 2018, 12:48