2010-05-19 23 views
11

मैं एक एएसपी.नेट एमवीसी 2 परियोजना पर काम कर रहा हूं। समस्या यह है कि जब एक स्ट्रिंग जो यूआरएल में फिर से लिखी जाएगी, इसमें बैकस्लैश या प्रश्न चिह्न जैसे विशेष चरित्र शामिल हैं, यूआरएल गलत होगा, भले ही मैंने इसे पहले एन्कोड किया हो।यूआरएल पुनः लिखने के साथ यूआरएल में बैकस्लैश सही ढंग से एन्कोड किया जा सकता है?

उदाहरण के लिए:

  1. मैं एक उत्पाद आईडी "P001 \ 2-2"। गलत अनुरोध -
  2. मैं इस पर "P001% 5C2-2"
  3. यूआरएल http://domain.com/Product/p001%5C2-2 प्रतिक्रिया करता है HTTP त्रुटि 400 इनकोडिंग।

मैं इसे कैसे सही कर सकता हूं?

+0

मैं नष्ट कर दिया है:

सामान्य झंडा "ओ" बोल्ड में साथ उदाहरण अभी के लिए, अनुत्तरित अनुभाग में सवाल उठ सकता है, तो कुछ एएसपीनेट लोग एक नज़र डाल सकते हैं। मुझे यूआरएल एन्कोडिंग सामान समझना चाहिए, लेकिन एएसपीनेट-एमवीसी विशिष्ट नहीं है। – YOU

उत्तर

5

एचटीएमएल का उपयोग करने का प्रयास करें। अपने बैकस्लैश को हल करने के लिए एन्कोड करें। यदि बैकस्लैश आपकी आईडी में एकमात्र 'विशेष' चरित्र है, तो आप प्रतिस्थापन ("% 5C", "\") का उपयोग कर सकते हैं।

क्या आपने अपना रूटिंगमैप चेक किया है? वहाँ

उत्पाद/{prodictID} की तरह एक मार्ग

0

मैं अपने URL में% 2F के साथ एक समान समस्या थी हो गया है। अपने पुनः लिखने के लिए normalize ध्वज संलग्न करने का प्रयास करें।

RewriteRule^(। *) Index.html $ http://www.yoursite.com/ $ 1 [आर = 301, एल, हे] मेरा उत्तर

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