2011-07-10 10 views
20

मैं एक एमवीसी नियंत्रक लिख रहा हूं जहां मुझे दोनों डेटा, डेटा रिटर्न के साथ-साथ एक लंबा मतदान "डेटा बदल गया है" जैसे ही (!) Url से व्यवहार को संभालने की आवश्यकता है। कुछ भी नहीं मैं इसके बारे में कर सकता हूं - मैं पहले से ही मौजूदा एप्लिकेशन के लिए प्रॉक्सी लागू कर रहा हूं, इसलिए मेरे पास एपीआई में कोई एक्सटेंशन/संशोधन करने का कोई तरीका नहीं है।एमवीसी: मार्ग विभिन्न नियंत्रकों को प्राप्त/पोस्ट करें। कैसे?

मेरी मुख्य समस्या यह है: * POST संचालन तुरंत पूरा करना होगा। * जीईटी ऑपरेशन अधिक समय लेते हैं (कभी-कभी घंटों लग सकते हैं)।

क्या मैं किसी भी तरह से दोनों अलग-अलग नियंत्रकों के लिए फिर से लिख सकता हूं? विकल्प होगा ... एचएम ... दोनों async बनाओ, बस पोस्ट सही तीन और फिर खत्म हो रहा है।

कोई भी उस पर कोई टिप्पणी करता है?

उत्तर

44

आपको रूटिंग स्तर पर बाधाओं का उपयोग करने में सक्षम होना चाहिए ताकि यूआरएल किस नियंत्रक/क्रिया को नियंत्रित कर सके। "यूआरएल:", "चूक:" => आप क्या उपसर्ग है "नया:

routes.MapRoute(
    "route that matches only GETs for your url", 
    "your url", 
    new { controller = "some controller", action = "some action" }, 
    new { httpMethod = new HttpMethodConstraint("GET") } 
); 

routes.MapRoute(
    "route that matches only POSTs for your url", 
    "your url", 
    new { controller = "some other controller", action = "some other action" }, 
    new { httpMethod = new HttpMethodConstraint("POST") } 
); 
+0

धन्यवाद एक बहुत;;) यही तो मैं याद आ रही थी है) – TomTom

+0

प्रत्येक पंक्ति क्रमशः" नाम "के साथ उपसर्ग है, तो {httpMethod ... "लाइन के साथ? –

+1

@full_prog_full उपसर्ग विधि घोषणा में पैरामीटर का नाम है, जो इस मामले में 'बाधाएं' है। – infiniteRefactor