2011-09-22 2 views
9

मैं एक स्क्रीन रखने पर काम कर रहा हूं जो उपयोगकर्ता को वस्तुओं का क्रम बदलने की अनुमति देता है, और जब उपयोगकर्ता "सहेजें" बटन पर क्लिक करता है तो मेरा जावास्क्रिप्ट <li> आइटमों के क्रम को देखेगा, और क्रम में उन्हें एक आईडी मान के साथ एक सरणी बनायेगी और इसे मेरे आवेदन पर वापस भेज देगा। मैं की तरह पोस्ट डेटा देखने के लिए उम्मीद:क्या मुझे लगता है कि मैं POST पर मूल्य भेजता हूं, क्या मॉडल Asp.net MVC में एक ही क्रम में सरणी के लिए बाध्य होगा?

stepIds=5&stepIds=2&stepIds=1 

इसका मतलब है कि कदम, # 5 के क्रम में कर रहे हैं तो # 2, और अंत में # 1। मेरी Asp.Net MVC आवेदन में मैं के साथ पकड़ने के लिए योजना बना रहे हैं:

public virtual ActionResult Reorder(short[] stepIds) { } 

मेरा प्रश्न है, होगा Asp.net MVC हमेशा प्रपत्र उसी क्रम में stepIds सरणी है कि मूल्यों पोस्ट स्ट्रिंग में निर्दिष्ट कर रहे हैं, या क्या मुझे यह सुनिश्चित करने के लिए एक और अधिक जटिल पोस्ट करने की आवश्यकता है कि उपयोगकर्ता द्वारा क्रमबद्ध ऑर्डर सर्वर को ऑर्डर करता है?

उत्तर

3

नहीं, आप आदेश पर भरोसा नहीं कर सकते हैं। जिस तरह से इसे एएसपी.नेट 4.0 में लागू किया गया है, यह वास्तव में ऑर्डर को सुरक्षित रखेगा लेकिन यह भविष्य के संस्करणों में बदल सकता है। आप HttpValueCollection.FillFromString निजी विधि को रिफ्लेक्टर के साथ देख सकते हैं कि यह कैसे कार्यान्वित किया जाता है।

stepIds[0]=5&stepIds[1]=2&stepIds[2]=1 
:

आदेश की गारंटी करने के केवल विश्वसनीय तरीका यह है

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