ASP.Net MVC控制器有幾種將控制轉發給另一個控制器或動作的方法。但是,所有這些都會導致客戶端重定向,包含302和新的瀏覽器請求。爲什麼ASP.Net MVC(或CodeIgniter)中沒有內部控制器重定向?
爲什麼沒有內部「調用另一個控制器的動作」功能,沒有涉及到客戶端?我很確定php CodeIgniter框架也缺少這個功能。
我可以想出最好的理由是最終它是沒有必要的,因爲你想調用的任何代碼都可以分解到某個共同的地方,至少在ASP.Net MVC中,操作可能相當昂貴。但是a lot of people ask about this,它似乎最終會是一個方便。
因此......許多聰明的人設計了這些框架。有沒有這個好理由?
我也想過這個。您顯然會通過執行內部重定向消耗多個資源(如您的路由所定義的),這是非常不可靠的。我不確定這是否是排除功能的足夠好的理由,但在我的思維過程中,它是高的。 – womp 2009-09-08 21:46:02