如何处理MVC5中的文件404错误?

时间:2016-05-22 11:44:02

标签: c# asp.net asp.net-mvc-4 asp.net-mvc-5

我写了一个Controller来处理我的MVC5应用程序的404页错误,因为它显示为here。但是它仅适用于具有控制器和方法的HTML页面。

它不适用于只有站点内链接的files \ images。 例如Sample.chtml:

private static void mergeSort(Node<Integer> head) {
    if (head==null || head.next == null) {
        return;
    }

    Node<Integer> temp1 = head;
    Node<Integer> temp2 = head;
    int count = 0;
    while (temp2 != null && temp2.next != null) {
        temp1 = temp1.next;
        temp2 = temp2.next.next;
        count++;
    }
    Node<Integer> list1 = head;
    Node<Integer> listTemp1 = list1;
    while (count > 0) {
        listTemp1 = listTemp1.next;
        count--;
    }
    Node<Integer> list2 = listTemp1.next;
    listTemp1.next = null;

    mergeSort(list1);
    mergeSort(list2);

    Node<Integer> finalHead = null;
    Node<Integer> finalTail = null;
    if (list1.data < list2.data) {
        finalHead = list1;
        list1 = list1.next;
    } else {
        finalHead = list2;
        list2 = list2.next;
    }
    finalTail = finalHead;

    while (list1 != null && list2 != null) {
        if (list1.data < list2.data) {
            finalTail.next = list1;
            finalTail = list1;
            list1 = list1.next;
        } else {
            finalTail.next = list2;
            finalTail = list2;
            list2 = list2.next;
        }
    }

    if (list1 == null) {
        finalTail.next = list2;
    } else if (list2 == null) {
        finalTail.next = list1;
    }

    return;

}

其中FilePath仅引用~Content / images / ...或〜/ Content / Files / file.pdf。

当我尝试浏览此链接时,我得到标准的404 NotFound页面,并且来自Global.asax.cs的错误控制器或Application_Error不会调用。

特别是我需要这个处理程序用于file-not-found案例。 我怎么解决这个问题?

编辑:重要时刻:这个文件只有pure-html-link,没有定义controller \ method。

1 个答案:

答案 0 :(得分:2)

在NuGet中搜索MvcNotFound包。它非常适合你处理所有这些。