3
請解釋IActionFilter和IResultFilter的區別。我明白OnActionExecuting發生在執行一個動作方法之前,並且OnActionExecuted發生在一個動作方法執行之後,並且更進一步,它意味着要執行一個動作方法。我不明白,在IResultFilter的情況下,這意味着要執行的操作結果。IActionFilter vs IResultFilter
請解釋IActionFilter和IResultFilter的區別。我明白OnActionExecuting發生在執行一個動作方法之前,並且OnActionExecuted發生在一個動作方法執行之後,並且更進一步,它意味着要執行一個動作方法。我不明白,在IResultFilter的情況下,這意味着要執行的操作結果。IActionFilter vs IResultFilter
動作過濾器包含在執行控制器動作之前和之後執行的邏輯。例如,您可以使用操作過濾器來修改控制器操作返回的視圖數據。
結果過濾器(或IResultFilters)包含執行視圖結果之前和之後執行的邏輯。例如,您可能想要在將視圖呈現給瀏覽器之前修改視圖結果。
讀Understanding Action Filters.
爲了澄清什麼的ViewResult確實讓我們看看ViewResultBase執行:
viewEngineResult = this.FindView(context);
this.View = viewEngineResult.View;
TextWriter output = context.HttpContext.Response.Output;
this.View.Render(new ViewContext(context, this.View, this.ViewData, this.TempData, output), output);
你會看到它首先找到的觀點,然後呈現視圖的響應輸出流。
但是,特別是對於要執行的視圖結果意味着什麼?這是否意味着View從控制器被調用,導致View被執行,或者什麼? – Scott
ViewResult,將指定視圖呈現給響應流 – shenku
請參閱上面的我的編輯。 – shenku