मैं एक नियंत्रक कार्रवाई विधि है कि काम करता है जब यह इस तरह दिखता है:एएसपी MVC नियंत्रक कार्रवाई '404 नहीं मिला' त्रुटि के साथ सजाया [HttpPost]
public ActionResult testMethod(int id)
{
//do something...
//return something...
return View();
}
लेकिन जब मैं यह दर्शाते हैं कि यह होना चाहिए एक " पोस्ट "विधि, मैं एक '404 नहीं मिला त्रुटि' मिलती है:
[HttpPost]
public ActionResult testMethod(int id)
{
//do something...
//return something...
return View();
}
मैं एक ही नियंत्रक में अन्य नियंत्रक कार्रवाई तरीकों - दोनों पोस्ट और मिलता है, और वे ठीक काम करते हैं। लेकिन यह कोई नहीं करता है? क्या चल रहा है? (मुझे यकीन है कि मुझे कुछ स्पष्ट याद आ रहा है ...)
अद्यतन: एक AJAX कॉल नियंत्रक विधि का अनुरोध करता है: var id = 1;
$.ajax({
url: '/indices/testMethod/',
data: id,
type: 'POST',
success: function (data) {
//Do something
}
});
मैंने पोस्टमैन के साथ विधि का परीक्षण करने का भी प्रयास किया है, यह सुनिश्चित कर लें कि एक POST अनुरोध भेजा गया हो।
अपडेट 2: मैंने आईडी पर पैरामीटर बदलने की कोशिश की है, और यह सुनिश्चित करने की कोशिश की है कि सभी विधि और यूआरएल स्थानों को मिलान करने के लिए पूंजीकृत किया गया है, लेकिन बिना किसी प्रभाव के।
फिडलर में, मैं देख सकता हूं कि वास्तव में एक जीईटी अनुरोध किया जा रहा है, भले ही मैं AJAX कॉल में एक POST अनुरोध निर्दिष्ट करता हूं, इसलिए अब मुझे यह पता लगाना होगा कि अनुरोध GET के रूप में क्यों भेजा जा रहा है एक पद।
मैं भी एक विशेषता मार्ग विवरण सहित करने की कोशिश की और यह
[HttpPost]
[Route("indices/TestMethod/{id:int}")]
public ActionResult TestMethod(int id)
की तरह है और किसी दूसरे यूआरएल के साथ ajax कॉल करने की कोशिश की:
$.ajax({
url: '/indices/TestMethod/1',
data: id,
type: 'POST',
success: function (data) {
var tr = 123;
var yr = data;
//Do something
}
});
विशेषता के साथ पर मार्ग, और में पैरामीटर मूल्य यूआरएल, मैं फिडलर में देखता हूं कि पहले एक पोस्ट अनुरोध होता है, जो 301 स्थिति त्रुटि प्राप्त करता है, लेकिन फिर एक जीईटी अनुरोध भी बनाया जाता है, जो 404 त्रुटि प्राप्त करता है।
अद्यतन 3: अधिक जांच करने के बाद मैं पर्याप्त रूप से नीचे समस्या परिभाषा संकुचित है कि यह समझ में बनाया एक नया सवाल है, यहाँ पाया जा सकता है खोलने के लिए: ASP MVC jQuery $.ajax POST request does not call controller method, but works in "fresh" MVC project
मुद्दा सामग्री सुरक्षा नीति की वजह से किया जा रहा है सेटिंग्स जो इस परियोजना के लिए सक्रिय थे।
आप इस कार्रवाई से संपर्क करने का प्रयास कैसे करते हैं? – Robert
क्या आप सुनिश्चित हैं कि अनुरोध कार्रवाई के लिए पोस्ट कर रहा है, कुछ अन्य क्रिया नहीं? फिडलर स्थापित करें और अनुरोध डेटा की जांच करें। – asawyer
ने कुछ अतिरिक्त जानकारी जोड़ दी है - जहां तक मुझे पता है, एक POST अनुरोध भेजा जाता है, लेकिन यह नियंत्रक तक कभी नहीं पहुंचता क्योंकि मुझे 404 त्रुटि मिलती है। –