2010-08-13 8 views
6

क्या एक ही फॉर्म को विभिन्न नियंत्रकों को पोस्ट करना संभव है?एमवीसी विभिन्न नियंत्रकों के लिए फॉर्म सबमिट करें

प्रत्येक पृष्ठ केवल कार्रवाई यूआरएल बनाने के लिए पोस्ट किया जा सकता है, लेकिन हो सकता है कि मैं बटन पर कहूं कि यूआरएल फॉर्म किस प्रकार जाना चाहिए?

उदाहरण के लिए मेरे पास एक फॉर्म और दो सबमिट बटन हैं, एक बटन एक नियंत्रक/यूआरएल (उदाहरण/एक्शन/व्यू) के लिए फॉर्म पोस्ट करेगा, अन्य बटन एक दूसरे नियंत्रक/यूआरएल (उदाहरण/एक्शन/अन्यवे) में फॉर्म सबमिट करेगा।

+0

@ डारिन की टिप्पणी के अनुसार, यदि कोई उत्तर आपकी समस्या हल करता है तो कृपया आप उस उत्तर को स्वीकार कर सकते हैं। धन्यवाद –

उत्तर

4

आप निश्चित रूप से ऐसा कर सकते हैं, बटन (ओं) के ऑनक्लिक ईवेंट में फ़ंक्शन संलग्न करने के लिए JQuery (या केवल जावास्क्रिप्ट) का उपयोग करें। फिर उस फ़ंक्शन का उपयोग उस यूआरएल को बदलने के लिए करें जो फॉर्म पोस्ट करता है और फिर फॉर्म जमा करता है।

JQuery होगा कुछ की तरह:

$('#button1').onclick(function(){ $(this).action = url1; $(document).submit();}); 
$('#button2').onclick(function(){ $(this).action = url2; $(document).submit();}); 
+0

उस स्थिति में डिफ़ॉल्ट मॉडल बाध्यकारी अभी भी काम करता है और मैं अपने क्रिया विधियों में फ़ॉर्म में दर्ज मान एकत्र कर सकता हूं? – Biki

+0

कोई कारण नहीं होना चाहिए कि यह आपके द्वारा पोस्ट की जाने वाली किसी भी कार्रवाई में क्यों काम नहीं करेगा। मॉडल बाइंडिंग केवल फॉर्म डेटा को देखती है और आपके इनपुट मॉडल पर मिलान करने वाली गुणों को खोजने का प्रयास करती है –

2

आप इस के लिए जावास्क्रिप्ट का उपयोग करने की आवश्यकता होगी। जब बटन क्लिक किया जाता है तो जावास्क्रिप्ट फॉर्म की एक्शन प्रॉपर्टी को उचित नियंत्रक में संशोधित करता है और फिर फॉर्म जमा करता है।

1

हमने जावास्क्रिप्ट का उपयोग करने से पहले यह किया है, जैसा कि अन्य उत्तरों में उल्लिखित है, और शायद यह जाने का सही तरीका है। एक विकल्प, हालांकि, एक नियंत्रक विधि पर पोस्ट करना है जिसमें यह तय करने के लिए तर्क शामिल है कि फॉर्म डेटा कहां भेजना है।

प्रभावी रूप से, आप नियंत्रक को फॉर्म जमा करते हैं, और पुनः सबमिट करते हैं कि बटन के टेक्स्ट या आईडी के आधार पर डेटा नियंत्रक कार्रवाई के शरीर में एक कथन का उपयोग करके क्लिक किया जाता है।

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