के साथ एएसपी.नेट एमवीसी कस्टम त्रुटि पेज मेरा प्रश्न शुद्ध है। क्रोम this post का जवाब है। मैंने अपनी विधि का उपयोग करके अपने पृष्ठों के कस्टम त्रुटि संदेशों को लागू करने का प्रयास किया, फिर भी कुछ समस्याएं हैं जिन्हें मैं समझा नहीं सकता।जादुई यूनिकॉर्न
ए) जब मैं स्थानीयहोस्ट: 3001/nonexistantPage जैसे अवैध URL में प्रवेश करके 404 त्रुटि को उत्तेजित करता हूं, तो यह मेरे त्रुटि नियंत्रक के सर्वर त्रुटि() क्रिया को डिफ़ॉल्ट करता है, भले ही इसे NotFound() पर जाना चाहिए।
public class ErrorController : Controller { public ActionResult NotFound() { Response.TrySkipIisCustomErrors = true; Response.StatusCode = (int)HttpStatusCode.NotFound; var viewModel = new ErrorViewModel() { ServerException = Server.GetLastError(), HTTPStatusCode = Response.StatusCode }; return View(viewModel); } public ActionResult ServerError() { Response.TrySkipIisCustomErrors = true; Response.StatusCode = (int)HttpStatusCode.InternalServerError; var viewModel = new ErrorViewModel() { ServerException = Server.GetLastError(), HTTPStatusCode = Response.StatusCode }; return View(viewModel); } }
Global.asax.cs में मेरे त्रुटि मार्गों:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.MapRoute(
name: "Error - 404",
url: "NotFound",
defaults: new { controller = "Error", action = "NotFound" }
);
routes.MapRoute(
name: "Error - 500",
url: "ServerError",
defaults: new { controller = "Error", action = "ServerError" }
);
और मेरे web.config सेटिंग्स:
<system.web>
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="/ServerError">
<error statusCode="404" redirect="/NotFound" />
</customErrors>
...
</system.web>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/NotFound" responseMode="ExecuteURL" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" path="/ServerError" responseMode="ExecuteURL" />
</httpErrors>
...
त्रुटि विचारों यहाँ मेरी ErrorController है/Views/त्रुटि/NotFound.cshtml और ServerError.cshtml में स्थित हैं।
ख) एक अजीब बात है, जब एक सर्वर त्रुटि तब होती है यह वास्तव में है सर्वर त्रुटि दृश्य मैं परिभाषित प्रदर्शित है,, लेकिन यह भी रूप में अच्छी तरह कह रही है कि त्रुटि पृष्ठ पाया नहीं जा सका एक डिफ़ॉल्ट त्रुटि संदेश आउटपुट।
आप किसी भी सलाह है कि कैसे मैं इन दोनों समस्याओं को ठीक कर सकता है है? मुझे वास्तव में शुद्ध पसंद है। क्रोम इन त्रुटि संदेशों को लागू करने के लिए दृष्टिकोण, लेकिन अगर इसे प्राप्त करने के बेहतर तरीके हैं तो मुझे बताने के लिए ध्यान न दें।
धन्यवाद!
** संपादित करें: ** मैं त्रुटि/त्रुटि/त्रुटि/त्रुटि/सर्वर त्रुटि प्राप्त करके त्रुटि नियंत्रक के माध्यम से सीधे अपने विचारों पर नेविगेट कर सकता हूं।
विचारों में स्वयं केवल कुछ पाठ, कोई मार्कअप या कुछ भी शामिल नहीं है।
जैसा कि मैंने कहा था, यह वास्तव में किसी भी तरह से काम करता है, न कि जिस तरह से मैं इसे काम करने का इरादा रखता हूं। Web.config में रीडायरेक्ट के साथ कोई समस्या प्रतीत होती है, लेकिन मैं इसे समझने में सक्षम नहीं हूं।
क्या आप भी अपना विचार पोस्ट कर सकते हैं? इस 'ग्लोबल फ़िल्टरर्स' फ़िल्टर को हटाने के लिए भी मत भूलना। (नया हैंडलरर एट्रिब्यूट()); –
क्या आप सीधे अपने 404 पेज पर जा सकते हैं? –
हाँ मैं कर सकता हूँ। यहां समस्या वेब.कॉन्फिग की सेटिंग्स से उत्पन्न होती है, हालांकि मुझे वहां गलती नहीं मिल रही है। – FLClover