摘要:ASP.NET MVC - 實作 HandleUnknownAction 功能,以避免 404 的發生
在開發 MVC 時,難免會將一些命名不好的 Action 重新命名,但前端有 Web 中若有用到這個 Action 且又沒改到的話,往往都會出現 404 的狀況。或者是,有一些使用者自以為記得網址,就在 URL 上面自行輸入就很容易導致 404 發生,進而使用者就以為是系統 Bug 就開始吵鬧工程師。這時威力強大的 MVC 就展現出它強有力的特性,那就是「HandleUnknownAction」,以下就來實作此方法...
步驟一:在 HomeController 中輸入以下的程式碼
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVC_HandleUnknownAction.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
protected override void HandleUnknownAction(string actionName)
{
ViewData["ErrorMessage"] = "404 錯誤...";
this.View("Error").ExecuteResult(ControllerContext);
}
}
}
步驟二:在 Views / Shared / Error.aspx 中加入 ViewData["ErrorMessage"]
Code:
<asp:Content ID="errorContent" ContentPlaceHolderID="MainContent" runat="server">
<h2>
Sorry, an error occurred while processing your request.
</h2>
<h1>
<%=ViewData["ErrorMessage"] %>
</h1>
</asp:Content>
結果:
參考:
ASP.NET MVC 開發心得分享 (7):HandleUnknownAction
Controller.HandleUnknownAction Method