如果ActionInvoker 找不到對應的Action,默認會運行System.Web.Mvc.Controller 類別的HandleUnknownAction 方法,在System.web.Mvc.Controller 類別裏HandleUnknownAction 方法默認會響應404找不到資源的錯誤消息,
這裏只需要重寫一個HandleUnKonwAction 方法就可以了,方法如下
protected virtual void HandleUnKonwAction(string actionname)
{
throw new HttpException(404, "Message");
}
在ASP.NET MVC 項目中,所有的Countroller默認都是幾寸自System.web.Mvc.Countroller 類別,由於在System.Web.MVC.Countroller 類別中的 HandleUnKonwAction 方法被標註爲“virtual”,代表方法可以被替換(Overrride),因此,可以在項目的Controller 中替換HandleUnknownAction方法,既可以自定義當mvcHandle 找不到Action時處理方法,不過需要注意一些陷阱,如果是直接參考MSDN 上的演示程序的話,會有一些潛在 風險,例如,HandleUnKonwAction 不會區分動作Action 方法的httpget http post