2012-05-22 18 views
11

का उपयोग कर प्रोग्रामिंग रूप से 404 पेज पर रीडायरेक्ट करें मैंने एक एएसपीनेट एमवीसी एप्लीकेशन बनाया है। अब 404 हैंडलिंग की आवश्यकता है।एएसपीनेट एमवीसी

ने वैश्विक.एक्सएक्स अपडेट किया है और स्टेटस कोड के आधार पर 404 पेज प्रदर्शित किया है। Web.config में customErrors प्रॉपर्टी भी जोड़ा। यह ठीक काम कर रहा है।

अब जब भी कोई आवश्यकता हमारी आवश्यकता से मेल नहीं खाती है तो मैं 404 प्रोग्रामेटिक रूप से रीडायरेक्ट करना चाहता हूं।

अर्थात अगर { वापसी RedirectToAction ("सूचकांक", "Page404") (मान्य!); }

इसके ठीक काम कर रहा है, लेकिन देखते हैं 2 स्थिति एक 301 & है तो 404. तो मुझे पता है कि मैं रोका जा सकता है 301. मैं बस जरूरत है 404.

कृपया मुझे पता है कि मैं यह कैसे प्राप्त कर सकते हैं तो कृपया ?

धन्यवाद, Laxmilal Menaria

उत्तर

3

अपने web.config में, जोड़ें:

<customErrors mode="On" > 
     <error statusCode="404" redirect="/404.shtml" /> 
</customErrors> 

अनुरोध किया गया संसाधन अनुरोध नहीं होने पर यह 404.shtml पृष्ठ पर रीडायरेक्ट करेगा।

नोट: ऐसी स्थिति के लिए उपयोगकर्ताओं को प्रोग्रामेटिक रूप से रीडायरेक्ट करने की आवश्यकता नहीं है।


संपादित करें: मैं सचमुच का सुझाव:

if (Context.Response.StatusCode == 404) { 
    // handle this 
} 
2

बस स्थिति कोड में एक 404 बाहर फेंक:

Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound 
40

बस अपनी कार्रवाई से लौटने:

return HttpNotFound(); 
+2

यह सही जवाब है। किसी ऐसे मामले में जहां आप परिणाम देने के दौरान डेटाबेस से पूछताछ करते हैं, और उपयोगकर्ता द्वारा निर्दिष्ट आईडी के साथ कोई ऑब्जेक्ट नहीं मिलता है, तो आपको प्रोग्राम को 404 पेज (या इसी तरह की कार्रवाई) पर प्रोग्रामेटिक रूप से रीडायरेक्ट करने की आवश्यकता होती है। – Dermot