asp.net mvc - Begin.Form with overload that accepts routeValues and htmlAttributes -
मैं start.Form का एक अधिभार का उपयोग करता हूं जो रूट मान स्वीकार करता है
& lt;% RouteValueDictionary रूट वैल्यू = व्यूकोन्टेक्स्ट। रूटाडेटा। मूल्य; मार्ग वैल्यू। जोड़ें ("टेस्टराउट 1", "परीक्षा"); (Html.BeginForm ("श्रेणी", "होम", मार्ग वैल्यू, FormMethod.Post)) का उपयोग कर रहा है {% & gt; & Lt; इनपुट प्रकार = "सबमिट करें" मान = "सबमिट करें" नाम = "सबफ़ॉर्म" / & gt; & Lt;%}% & gt;
यह काम करता है और फार्मेटाग को इस रूप में प्रस्तुत करता है:
& lt; form method = "post" action = "/ home / category? Testroute1 = test" & gt;
मुझे html गुणों को बदलने की आवश्यकता है, इसलिए मैंने क्यों प्रयोग किया है:
& lt;% RouteValueDictionary routeValues = ViewContext.RouteData.Values; मार्ग वैल्यू। जोड़ें ("टेस्टराउट 1", "परीक्षा"); (Html.BeginForm ("श्रेणी", "होम", मार्ग वैल, FormMethod.Post, new {id = "frmcategory"})) {% & gt; & Lt; इनपुट प्रकार = "सबमिट करें" मान = "सबमिट करें" नाम = "सबफ़ॉर्म" / & gt; & Lt;%}% & gt;
परिणाम पूरी तरह से गलत है:
& lt; form method = "post" id = "frmTyreBySizeCar" action = "/ de / TyreSize.mvc / सूची - गणना = 12 & amp; amp; amp; amp; amp; amp; amp; amp; कुंजी = System.Collections.Generic.Dictionary% ....
मुझे पता है कि फार्मलेस्टर के स्रोत में कारण क्या है।
मेरे दिए गए पैरामीटरों पर लागू होने वाले 2 ओवरलोड हैं:
सार्वजनिक स्थिर MvcForm BeginForm (यह HtmlHelper html हैल्पर, स्ट्रिंग एक्शननाम, स्ट्रिंग नियंत्रकनाम, ऑब्जेक्ट मार्ग वैल्यू, फॉर्ममैथ विधि, ऑब्जेक्ट html गुण) सार्वजनिक स्थिर MvcForm BeginForm (इस HtmlHelper HtmlHelper, स्ट्रिंग actionName, स्ट्रिंग controllerName, RouteValueDictionary routeValues, FormMethod विधि, IDictionary & LT; स्ट्रिंग, वस्तु & gt; htmlAttributes)
यह गलत हो जाता है, क्योंकि पहली विधि उठाया जाता है अगर मैं html के गुणों की आपूर्ति नहीं करता है, तो वस्तु के साथ कोई अधिभार नहीं है और पैरामीटर के रूप में काम करता है और हर चीज अपेक्षा के अनुरूप काम करती है।
मुझे एक वैकल्पिक हल की आवश्यकता है जो कि रूटव्यूल्स के एक शब्दकोश को स्वीकार करता है एन डी एचटीएल गुण मैं वहाँ भार के एक अतिरिक्त routeName होती है, लेकिन नहीं thats मैं क्या चाहते हैं कि देखते हैं
संपादित करें:।। यूजीन BeginForm का सही उपयोग से पता चला है
Html.BeginForm ( {{"Id", "frmcategory"}} "
"> Pre>)
का प्रयोग करें (दोनों रूटवैल्यूज और एचटीएमएलएक्ट्स ऑब्जेक्ट हैं):
< ("श्रेणी", "होम", नया {TestRoute1 = "test"}, FormMethod.Post, new {id = "frmcategory"})या (दोनों RouteValues और HtmlAttributes शब्दकोशों हैं):
Html.BeginForm ( "श्रेणी", "घर", नए RouteValueDictionary {{ "TestRoute1", "परीक्षण"}}, FormMethod.Post, नई शब्दकोश & LT; स्ट्रिंग, वस्तु & gt; {{ "id", "frmCategory"}})
Comments
Post a Comment