यह एक डुप्लिकेट प्रश्न नहीं है, और समस्या मुझे पागल कर रही है। मुझे सामान्य त्रुटि मिल रही है "नियंत्रक वाई पर एक सार्वजनिक क्रिया विधि एक्स नहीं मिली" जो 404 Not Found
देता है। स्क्रीनशॉट आप एक अच्छा विचार देता है:404 - नियंत्रक वाई पर एक सार्वजनिक क्रिया विधि एक्स नहीं मिला था (ActionInvoker.InvokeAction झूठी रिटर्न)
छवि दिखाता डिबगर लाइन है कि अपवाद के निष्पादित होने (base.HandleUnknownAction(actionName)
) फेंकता से पहले सही रोक दिया है। अब, आप निष्कर्षों में कूदने से पहले, यहां कुछ जानकारी दी गई है:
- यह किसी बिंदु पर पूरी तरह से ठीक से काम कर रहा था।
- HTTP क्रिया (
GET
)UpdateCart
कार्रवाई (विधि हस्ताक्षर के ऊपर एनोटेशन देखें) द्वारा स्वीकार किया जाना चाहिए। - भेजे गए पैरामीटर अप्रासंगिक हैं: त्रुटि
POST
,GET
और पैरामीटर के किसी भी संयोजन के साथ होती है। - उसी नियंत्रक में अन्य समान कार्य अच्छी तरह से काम करते हैं।
- मैंने
UpdateCart
virtual
के साथ स्क्रीनशॉट लिया, लेकिनvirtual
को हटाने से कोई फर्क नहीं पड़ता। - स्क्रीनशॉट से पता चलता है कि
ActionInvoker.InvokeAction(this.ControllerContext, "UpdateCart")
झूठी देता है। निश्चित नहीं है कि मेरे नियंत्रक पर किए गए प्रतिबिंब विधि को नहीं ढूंढ सकते हैं, लेकिन यह सही है !!
मार्ग डिफ़ॉल्ट हैं और वे काम करते हैं, अन्यथा मैं उपरोक्त स्क्रीनशॉट लेने के लिए डीबगर को रोकने में सक्षम नहीं होता।
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Tickets", action = "Index", id = UrlParameter.Optional }
);
}
कोई भी विचार बहुत सराहना कर रहे हैं: यहाँ Global.asax.cs
से कोड है।
संपादित
एतान ब्राउन के नीचे जवाब सही है: HttpGet
और HttpPost
परस्पर अनन्य हैं। समाधान इन गुणों को [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
के साथ प्रतिस्थापित करना था।
आप किसी भी यूआरएल पुनर्लेखन कर रहे हैं? – MikeSW
नहीं। कोई यूआरएल पुनर्लेखन नहीं। ध्यान दें कि डीबगर कितनी दूर है! एक अच्छी तरह से phrased और दस्तावेजी प्रश्न के लिए – Diego
+1। जादू साफ/पुनर्निर्माण समाधान चाल के अलावा अन्य कोई विचार नहीं है। माफ़ कीजिये। – Tommy