如果有些使用者會隨便在網址後面加東西會發生什麼事情呢?
譬如我的正常網址是 https://webberTest/
那我非常調皮地把url 改成 https://webberTest/D6546464654645646546465465456
相當然爾,網址參數亂給,沒有設定的話 100% 是黃頁...
就算不是你的錯 但我看客戶以及你家PM會爆炸
現在教學一個簡單的 如果我們網址出現錯誤 要如何導到Index這頁
我們以小專案來做個小範例
上面的網址列正常是 http://localhost:53584/Home 也就是 /Home/Index這頁
但我這個調皮的使用者把他網址亂打 http://localhost:53584/Home/askdl;akd;alkd;adk
結果我的網頁就變成
why?
因為就路由找不到相對的參數 也就是你Controller的actionName 沒有相對應的名稱
所以....如果客戶想要導回http://localhost:53584/ 避免這個問題
該如何做呢?
首先很簡單
我會在基底類別 controller 新建一個抽象類別 BaseController 然後繼承Controller
public abstract class BaseController : Controller
{
protected override void HandleUnknownAction(string actionName)
{
this.RedirectToAction("Index").ExecuteResult(this.ControllerContext);
}
}
然後在我的每個Controller 繼承的 Controller 改成 剛剛設定的BaseController 也就是改成下圖這樣
為啥要繼承呢? 因為你也不想每頁都加HandleUnknownAction這段code吧...
執行結果就會導回那個Controller的Index 啦
如果有任何問題或者有不懂 或者我的文章有問題
請留言一下! 謝謝各位不吝嗇指教
主要是做我的學習筆記
偶而心血來潮寫個幾篇~
若有問題~可以寫信或在下方留言~感謝