先不看緩衝處理
internal class ActionProcessor : ProcessorBase {
private static readonly ILog logger = LogManager.GetLogger( typeof( ActionProcessor ) );
public override void Process( ProcessContext context ) {
MvcEventPublisher.Instance.BeginProcessAction( context.ctx );
if (context.ctx.utils.isSkipCurrentProcessor()) return;
MvcContext ctx = context.ctx;
ControllerBase controller = context.getController();
MethodInfo actionMethod = ctx.ActionMethodInfo; // context.getActionMethod();
// 設值模板並載入全域變數
//設定模板,取得正確的view,此時view還是初始值,裡面的變數還沒有複製。根據controller和actionMethod參數//
//調用getParentViewPath取得正確的view路徑。
setControllerView( controller, actionMethod );
// 運行並處理post值
//此處運行對應的action,對view中的變數進行賦值,產生_actionContent
ActionRunner.runAction( ctx, controller, actionMethod, controller.utils.runAction );
String actionContent = controller.utils.getActionResult();