से "कोई कार्रवाई नहीं मिली" प्राप्त करना मैं एक डब्ल्यूसीएफ देव हूं, एमवीसी के लिए नया हूं। मेरे डब्ल्यूसीएफ एपीआई को एपीआई कंट्रोलर के रूप में एक एमवीसी एप्लिकेशन में एकीकृत करने की कोशिश कर रहा है (अभी भी बड़ा सवाल है कि यह एक योग्य प्रयास है)।वेबएपी
मैं एक jQuery प्लगइन से अनुरोध किया है:
POST http://localhost:18698/Api/Public/DoAction HTTP/1.1
....
Content-Type: application/json; charset=UTF-8 Accept:
application/json, text/javascript, */*; q=0.01
{"myParam":"test"}
मेरे नियंत्रक इस तरह दिखता है:
config.Routes.MapHttpRoute(
name: "PublicApi",
routeTemplate: "api/{controller}/{action}"
);
मैं:
public class PublicController : ApiController
{
[HttpPost]
public string DoAction(string myParam)
{
return "Test";
}
}
और, मार्ग टुकड़ा इस तरह दिखता है मुझे यह त्रुटि मिल रही है:
{
"Message": "No HTTP resource was found that matches the request URI 'http://localhost:18698/Api/Public/DoAction'.",
"MessageDetail": "No action was found on the controller 'Public' that matches the request."
}
किसी भी JSON पैरामीटर को स्वीकार नहीं करने वाले तरीके ठीक काम करते हैं, लेकिन जेएसओएन पैरामीटर स्वीकार करने वाले लोग काम नहीं करते हैं। मुझे जटिल JSON को विधियों में पारित करने में सक्षम होना चाहिए। डब्ल्यूसीएफ में, जेएसओएन से वस्तुओं तक अनुवाद डब्ल्यूसीएफ द्वारा मेरे लिए संभाला गया था।
क्या आपको पता है कि मुझे यह त्रुटि क्यों मिल रही है? क्या मैं डब्ल्यूसीएफ में एमवीसी में जटिल जेएसओएन को निर्बाध रूप से पास/प्राप्त करने में सक्षम हूं?
से उपयोग करेगा यदि यह इसे 'एप्लिकेशन/एक्स-www-form-urlencoded' प्रारूप' के रूप में पोस्ट करता है तो यह काम करता है? (बस अपने JSON को अमान्य होने की संभावना से इंकार करना चाहते हैं) – James
मैंने अपना पैराम = टेस्ट सामग्री-प्रकार के साथ एक फॉर्म के रूप में पोस्ट किया है: एप्लिकेशन/एक्स-www-form-urlencoded; charset = UTF-8।वही परिणाम - नियंत्रक – user1044169
पर कोई कार्रवाई नहीं मिली, आपका मार्ग ठीक प्रतीत होता है, 'DoAction' को' पोस्ट' में बदलने का प्रयास करें और '[HttpPost]' विशेषता को हटा दें, क्रिया प्रकार को क्रिया नाम से निहित किया गया है 'ApiController'। – James