internal static void ExecuteAction(HttpContext context, InvokeInfo vkInfo) { if (context == null) throw new ArgumentNullException("context"); if (vkInfo == null) throw new ArgumentNullException("vkInfo"); SetMvcVersionHeader(context); // 验证请求是否允许访问(身份验证) AuthorizeAttribute authorize = vkInfo.GetAuthorize(); if (authorize != null) { if (authorize.AuthenticateRequest(context) == false) ExceptionHelper.Throw403Exception(context); } // 调用方法 object result = ExecuteActionInternal(context, vkInfo); // 设置OutputCache OutputCacheAttribute outputCache = vkInfo.GetOutputCacheSetting(); if (outputCache != null) outputCache.SetResponseCache(context); // 处理方法的返回结果 IActionResult executeResult = result as IActionResult; if (executeResult != null) { executeResult.Ouput(context); } else { if (result != null) { // 普通类型结果 context.Response.ContentType = "text/plain"; context.Response.Write(result.ToString()); } } }