6

हम एएसपी.नेट एमवीसी फ्यूचर्स प्रोजेक्ट (माइक्रोसॉफ्ट.एब.एमवीसी) का उपयोग कर रहे हैं ताकि एक एमवीसी 3 एप्लिकेशन को रीस्टफुल रूट्स का उपयोग किया जा सके। यह एप्लिकेशन एक ही कार्यक्षमता के लिए एमवीसी 1 और इसकी संबंधित System.Web.Mvc.Resources.dll असेंबली के तहत पूरी तरह से काम कर रहा है।एएसपी.नेट एमवीसी 3 रीस्टफुल रूटिंग: रूटडाटा में एक्शन नामक एक आइटम होना चाहिए?

हम जैसे मार्गों दर्ज कर रहे हैं:

/MyController 
/MyController/{MyItemId} 
/MyController/{MyItemId}/EditForm 
/MyController/CreateForm 

हम चार मार्गों कि मान्य हैं के तीन मिल - कि सूची में दूसरा:

routes.MapResourceRoute("MyController", "{MyItemId}"); 

कौन सा हमारे जैसे मार्गों देना चाहिए जब मैं जोड़कर कोशिश

Server Error in '/' Application. 
The RouteData must contain an item named 'action' with a non-empty string value. 

कार्रवाई = विवरण या अन्य संगठनों: (/ MyController/{MyItemId}) एक त्रुटि देता है? यूआरएल में एक्शन पैरामीटर इंजेक्शन देने के एर तरीके, मुझे 404 त्रुटियां मिलती हैं। ऐसा लगता है कि फ़्यूचर्स कोड में WebEnabledApi विशेषता महत्वपूर्ण रूप से बदल गई है - किसी और को इन मुद्दों का सामना करना पड़ रहा है, और समाधान है?

उत्तर

1

डिफ़ॉल्ट मार्ग "नियंत्रक/क्रिया/आईडी" पर आधारित है, क्योंकि आप बस आईडी पास कर रहे हैं और कार्रवाई नहीं, यह आपको 404 त्रुटि देगा।

routes.MapRoute("Default", "{controller}/{action}/{id}", 
      new 
      { 
       controller = "Home", 
       action = "Index", 
       id = UrlParameter.Optional 
      }); 

मुझे विश्वास है कि आप विवरण कार्रवाई को कॉल करने का प्रयास कर रहे हैं।

आप नियंत्रक पर एक कार्रवाई की क्या ज़रूरत है, तो डिफ़ॉल्ट मार्ग का उपयोग कर काम कर सकते हैं:

MyController/Details/{MyItemId} 
संबंधित मुद्दे