سؤال

كيف يمكنني معالج أخطاء 404 دون إطار رمي استثناء 500 رمز خطأ ؟

هل كانت مفيدة؟

المحلول

http://jason.whitehorn.ws/2008/06/17/Friendly-404-Errors-In-ASPNET-MVC.aspx يعطي التفسير التالي:

إضافة البدل التوجيه القاعدة النهائية القاعدة:

routes.MapRoute("Error", 
                "{*url}", 
                new { controller = "Error", action = "Http404" });

أي طلب لا يطابق قاعدة أخرى يحصل توجيهها إلى Http404 العمل من الخطأ تحكم ، والتي تحتاج أيضا إلى تكوين:

public ActionResult Http404(string url) {
    Response.StatusCode = 404;
    ViewData["url"] = url;
    return View();
}

نصائح أخرى

يمكنك أيضا تجاوز HandleUnknownAction داخل جهاز تحكم في الحالات التي يكون فيها الطلب لا تتطابق مع جهاز تحكم, ولكن لا يطابق العمل.تطبيق الافتراضي لا رفع الخطأ 404.

رمي الجديد HttpException(404, "الموارد"لم يتم العثور على);

مع MVC 3 يمكنك العودة HttpNotFound() صحيح 404.

مثل هذا:

public ActionResult Download(string fontName)
{
    FontCache.InitalizeFonts();

    fontName = HttpUtility.UrlDecode(fontName);

    var font = FontCache.GetFontByName(fontName);
    if (font == null)
        return HttpNotFound();

    return View(font);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top