मैं एक कार्य विधि के साथ एक नियंत्रक के रूप में निम्नानुसार है:ASP.NET MVC - नियंत्रक पैरामीटर प्रदान करने के
public class InventoryController : Controller
{
public ActionResult ViewStockNext(int firstItem)
{
// Do some stuff
}
}
और जब मैं इसे चलाने मैं बताते हुए कोई त्रुटि मिलती है:
मानकों शब्दकोश में 'firstItem' पैरामीटर के लिए 'System.Int32' प्रकार का वैध मान नहीं है। एक पैरामीटर वैकल्पिक बनाने के लिए इसका प्रकार या तो संदर्भ प्रकार या एक शून्य प्रकार होना चाहिए।
मैंने इसे एक बिंदु पर काम किया था और मैंने बिना पैरामीटर के फ़ंक्शन का प्रयास करने का निर्णय लिया। यह पता लगाना कि नियंत्रक लगातार नहीं था, मैंने पैरामीटर को वापस रखा, अब जब मैं विधि को कॉल करता हूं तो यह पैरामीटर को पहचानने से इंकार कर देता है।
मैं इस यूआरएल सिंटैक्स का उपयोग कर रहा हूँ कार्रवाई कॉल करने के लिए:
http://localhost:2316/Inventory/ViewStockNext/11
कोई भी विचार क्यों मैं इस त्रुटि और क्या मैं इसे ठीक करने के लिए आपको मिलेंगे?
मैंने एक और विधि जोड़ने की कोशिश की है जो कक्षा में एक पूर्णांक लेता है, यह भी उसी कारण से विफल रहता है। मैंने एक स्ट्रिंग लेने वाला एक जोड़ने की कोशिश की है, और स्ट्रिंग को शून्य पर सेट किया गया है। मैंने पैरामीटर के बिना एक जोड़ने की कोशिश की है और यह ठीक काम करता है, लेकिन निश्चित रूप से यह मेरी आवश्यकताओं के अनुरूप नहीं होगा।
या "firstItem" को "id" –
का नाम दें और इसके अलावा यह मैपराउट पर बाधाओं को जोड़ने के लिए बुद्धिमान हो, जैसे: 'new {firstItem = @" \ d "}'। इस तरह यह ** केवल ** स्वीकार करेगा यदि पैरामीटर किसी भी प्रकार का नंबर है। आप रेगेक्स को अपनी पसंद के अनुसार संशोधित कर सकते हैं, और यहां तक कि दशमलव की संख्या को सीमित भी कर सकते हैं: 'new {firstItem = @" \ d {4} "}' - अब यह केवल 4 संख्या लंबा हो सकता है। संपादित करें: पूरी तरह से संशोधित MapRoute का उदाहरण: http://jsfiddle.net/HJRgT/ – KristianB