2009-01-19 10 views
7

मेरे पास मेरे नियंत्रक पर कुछ पोस्ट क्रियाएं हैं जो GET क्रियाओं की एक जोड़ी से प्रभावित होती हैं। जब सत्यापन विफल हो जाता है, तो मैं उस कार्रवाई के दृश्य को प्रस्तुत करना चाहता हूं जो पोस्ट से आ रहा है। उदाहरण के लिए:एएसपीएनईटी एमवीसी: रेफरर (एसआईसी) के मार्ग को समझने का तरीका?

~/खातों ~/खातों में पोस्ट/अक्षम - प्रस्तुत करना "अनुक्रमणिका" सत्यापन त्रुटि पर देखने ~/लेखा/प्रोफ़ाइल पदों ~/लेखा/निष्क्रिय करने के लिए - प्रस्तुत करना "प्रोफ़ाइल" सत्यापन त्रुटि पर देखने

मैं सर्वर-चर के बाहर रेफरर (एसआईसी) प्राप्त कर सकता हूं और कार्रवाई को समझने के लिए इसे पार्स कर सकता हूं, लेकिन उम्मीद कर रहा था कि इसमें कुछ ऐसा होगा जो मैं चाहता हूं, या किसी और ने पहले से ही ऐसा किया है जो मैं कर सकता था से पालना

ऐसा लगता है कि ControllerContext.RouteData प्रॉपर्टी में केवल वर्तमान अनुरोध के बारे में जानकारी है, न कि refering (sic) अनुरोध ...?

मैं एएसपी.नेट एमवीसी बीटा पर हूं।

+0

मैं यह भी जानना चाहूंगा कि HTTP संदर्भ के बिना रूट प्राप्त करने का कोई तरीका है या नहीं। –

उत्तर

2

एमवीसी कंट्रिब में मार्ग प्राप्त करने के लिए स्ट्रिंग पर एक विस्तार विधि शामिल है (विशेष रूप से, in here)। सिद्धांत रूप में यह आप

RouteData referrer = Request.UrlReferrer.PathAndQuery.Route(); 

करते हैं या, ज़ाहिर है, कि HttpRequest ताकि आप केवल

RouteData referrer = Request.ReferrerRoute(); 

हालांकि कर सकते हैं पर एक विस्तार विधि में लपेट, यह इकाई परीक्षण के लिए लक्षित और राइनो का उपयोग करता है GetRouteData() की आवश्यकता है कि HttpContextBase बनाने के लिए Mocks। अच्छी खबर यह है कि ऐसा लगता है कि यह बहुत कम मजाक कर रहा है, इसलिए यदि आप एचटीपीकॉन्टेक्स्टबेस से प्राप्त अपनी खुद की FakeHttpContext क्लास बनाते हैं तो आप राइनो मोक्स से बचने में सक्षम हो सकते हैं।

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