2011-08-30 11 views
16

मैंने लेआउट पेज में प्रारंभ/समाप्ति फॉर्म स्टेटमेंट रखा है ताकि मुझे इसे कई पृष्ठों पर दोहराना पड़े। नीचे कोड का एक सरलीकृत संस्करण है।क्या रेज़र में दूसरे के अंदर एक रूप घोंसला करना संभव है?

@using(Html.BeginForm()) 
{ 
    @RenderBody() 

    <input type = "submit" name = "nextButton" value = "Next-->" /> 
} 

चीजें अच्छी तरह से काम कर रही हैं। दुर्भाग्य से, मेरे पास एक पृष्ठ है जिसमें कई " हटाएं" बटन हैं। मैं प्रत्येक डिलीट बटन के लिए एक फॉर्म जेनरेट करना चाहता हूं ताकि वह आइटम की आईडी को नियंत्रक को वापस हटाने के लिए भेज सके।

मुझे लगता है कि जानते हुए भी पहले से ही उसके ऊपर एक और रूप है कि वहाँ क्या कर सकते हैं?

+0

दिलचस्प .. "मैं लेआउट पेज में शुरू/अंत प्रपत्र बयान कर दिया ..." लगता है कि आपने webforms पुनः बनाने की ओर एक कदम है। ;) – NotMe

+0

@ क्रिस जीवंत: मजेदार ??? ठीक है, सभी टैगबिल्डर के साथ मुझे निपटना पड़ा, मुझे नहीं पता था कि और क्या करना है। – Richard77

उत्तर

20

जैसा कि श्रीचिफ़ कहते हैं, एचटीएमएल चश्मे नेस्टेड रूपों को मना कर दिया है। चूंकि एमवीसी मानक एचटीएमएल उत्पन्न करता है, इसलिए आपको spec के ढांचे के साथ काम करना होगा।

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

यही कारण है कि आप वास्तव में केवल वास्तव में रूपों का उपयोग करना चाहिए, जहां वे, जरूरत है ही नहीं, हर जगह है।

+0

दरअसल मैं आपके द्वारा अभी प्रस्तावित किए गए करीब था। मैंने अभी उस पृष्ठ को लेआउट से प्राप्त नहीं किया है और यह काम करता है। लेकिन मुझे लेआउट से उस पृष्ठ पर सबकुछ कॉपी/पेस्ट करना था जिसमें सभी डिलीट बटन शामिल थे। लेकिन जैसा कि आपने सुझाव दिया है, लेकिन मेरे पास एक और लेआउट होगा। – Richard77

+1

@ रिचर्ड 77 - ध्यान दें कि आप * लेआउट * घोंसला भी कर सकते हैं। तो, आपके पास अपना मानक लेआउट, सैन्स फॉर्म हो सकता है। फिर आपके पास एक और लेआउट हो सकता है जो पहले पृष्ठ का उपयोग लेआउट के रूप में करता है, लेकिन इसमें फॉर्म शामिल है। फिर आप अपने क्लाइंट पृष्ठों के लिए लेआउट बनाना चुन सकते हैं। इस तरह, आपको कोड डुप्लिकेट करने की आवश्यकता नहीं है। –

8

की मदद करने के तरीकों में से है कि घोंसले ध्यान दें Do के लिए धन्यवाद W3 specs

हर रूप एक ऐसा फ़ॉर्म तत्व के भीतर संलग्न किया जाना चाहिए के अनुसार अनुमति नहीं है। एक ही दस्तावेज़ में कई रूप हो सकते हैं, लेकिन FORM तत्व घोंसला नहीं हो सकता है।

घोंसले के रूपों के बारे में एक चौंकाने वाला लेख here है।

इस मामले में, एक ही फॉर्म के बजाय प्रत्येक बटन के लिए form उत्पन्न करना बेहतर होता है।

एएसपी.Net वेब फ़ॉर्म आपको runat=server विशेषता का उपयोग करके पृष्ठ पर एकाधिक रूपों से प्रतिबंधित कर दिया गया है (और फ्रेमवर्क यह सुनिश्चित करता है कि केवल एक पृष्ठ प्रति अनुमति है)। एमवीसी forms शुद्ध HTML हैं ताकि आप उनमें से कई हो सकें।

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

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