मैं एक बहु-कदम सेटअप प्रक्रिया है, जहां मैं क्वेरी स्ट्रिंग यूआरएल केवल अगर वे प्रासंगिक हैं के साथ जोड़ दिया तर्क पारित करने के लिए करना चाहते हैं।MVC3 Html.BeginForm - RouteValueDictionary के रूप में तर्क गुजर विफल रहता है
http://localhost:6618/Account/Profile?wizard=true&cats=dogs
@using(Html.BeginForm())
महान काम किया। यह उत्पन्न हुआ: <form action="/Account/Profile?setup=true&cats=dogs" method="post">
यानी यह किसी भी मूल क्वेरी स्ट्रिंग पैरामीटर में POST कार्रवाई में पारित हो गया, और उसके बाद उस नियंत्रक कार्रवाई में मैं चुन सकता था कि कौन से लोग मेरे अगले चरण को पास करने के लिए प्रासंगिक थे, या जोड़ने के लिए रूटवॉल में जोड़कर, एक RedirectToResult।
हालांकि, मुझे स्टाइल उद्देश्यों के लिए मेरे फॉर्म में एक कक्षा असाइन करने की आवश्यकता है।
मैंने कोशिश की:
@using(Html.BeginForm("Profile", "Account", args, FormMethod.Post, new { @class = "mainForm" }))
जो पैदावार:
<form action="/Account/Profile?Count=1&Keys=System.Collections.Generic.Dictionary%602%2BKeyCollection%5BSystem.String%2CSystem.Object%5D&Values=System.Collections.Generic.Dictionary%602%2BValueCollection%5BSystem.String%2CSystem.Object%5D" class="mainForm" method="post">
(args
एक फिल्टर करने से उत्पन्न हुआ है, और एक RouteValueDictionary है)। विनिर्देश http://msdn.microsoft.com/en-us/library/dd505151.aspx इंगित करता है कि आप सिस्टम.Web.Routing.RouteValueDictionary के साथ तर्क पारित कर सकते हैं।
मैं क्या चाहता हूँ <form action="/Account/Profile?setup=true&cats=dogs" class="mainForm" method="post">
है मैं मैं, new {key = value}
बजाय में गुजर तरह कुछ करने के लिए नहीं करना चाहते, क्योंकि वहाँ तर्क का एक उचित मात्रा निर्धारित करने के क्या मैं अगले कदम पर साथ गुजर हो जाएगा उल्लेख करना चाहिए।
यहां क्या करना है इसके बारे में कोई सुझाव?
मैं इस असाधारण सरल कार्य से परेशान हूं, और निश्चित रूप से कुछ स्पष्ट रूप से कुछ याद कर रहा हूं।
शायद इस अन्य पोस्ट में उत्तर थोड़ा सा मदद कर सकता है? http://stackoverflow.com/questions/1219223/asp-net-mvc-getting-html-beginform-to-remember-querystring-params-when-submi – summea