2012-05-04 7 views
7

क्या प्रपत्र ASP.NET/MVC में बांधने के लिए परिभाषित व्यवहार करता है, तो आप एक फ़ॉर्म पोस्ट और उसके कार्रवाई क्वेरी पैरामीटर है और आप प्रपत्र डेटा है?मॉडल क्वेरी स्ट्रिंग और फार्म के साथ पोस्ट पर बाध्यकारी पैरामीटर

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

<form action="my/action?foo=1" method="post"> 
    <input type="hidden" name="bar" value="2"> 
</form> 

इस तरह के एक प्रपत्र प्रस्तुत किया जाता है तो नियंत्रक मिलना चाहिए दोनों foo और bar या उनमें से केवल एक?

उत्तर

7

नियंत्रक दोनों मान प्राप्त करेंगे। डिफ़ॉल्ट मॉडल बाइंडर यूआरआई (या तो क्वेरी स्ट्रिंग या रूट पैरामीटर) या बॉडी (और फॉर्म डेटा को आउट ऑफ़ द बॉक्स) से पैरामीटर के लिए मिलान खोजने का प्रयास करेगा।

0

मुझे लगता है कि यह दोनों को प्राप्त करने में सक्षम होना चाहिए। इस मामले में, मैं एक व्यूमोडेल बनाउंगा जिसमें दो स्ट्रिंग या int गुण होते हैं, जिन्हें 'foo' नाम दिया जाता है और दूसरा नाम 'बार' होता है और आपके एक्शन रिसेट ने व्यूमोडेल को स्वीकार किया है। ,

@Html.BeginForm("ActionName", "ControllerName", new { foo = "1" }) 

यह अनिवार्य रूप से अपने प्रपत्र टैग के रूप में एक ही एचटीएमएल उत्पन्न करता है: आप दोनों मूल्यों में आते देखना चाहिए

1

ध्यान दें, तो आप इस Html.BeginForm सहायक द्वारा समर्थित है देख सकते हैं, आप routeValues ​​के माध्यम से ऐसा करते हैं। लेकिन उन लोगों के लिए पोस्ट करना चाहता था जो इस प्रश्न को ढूंढते हैं और जानना चाहते हैं कि अतिरिक्त मूल्यों को कैसे पारित करना है जो BeginForm सहायक का उपयोग कर फ़ॉर्म का हिस्सा नहीं हैं।

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