发送HTTP标头后,服务器无法设置内容类型

时间:2009-05-23 07:39:43

标签: http content-type

我需要在点击按钮时渲染pdf。

我正在使用以下js代码:

function RenderPDf() {
            //for
            window.open("/Resources/RenderPDF", "", 'toolbar=no,titlebar=no, directories=no, location=no,status=yes, menubar=no, resizable=yes, scrollbars=yes,width=1010, height=680,left=0,top=0');
            return false;
        }

但我有时会收到以下错误:

Message :Server cannot set content type after HTTP headers have been sent.
Source :System.Web
Stack Trace :   at System.Web.HttpResponse.set_ContentType(String value)
  at System.Web.UI.Page.SetIntrinsics(HttpContext context, Boolean allowAsync)
  at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
  at System.Web.UI.Page.ProcessRequest(HttpContext context)
  at ASP.views_file_viewtaxreturn_aspx.ProcessRequest(HttpContext context)
  at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext)
  at System.Web.Mvc.WebFormView.RenderViewPage(ViewContext context, ViewPage page)
  at System.Web.Mvc.WebFormView.Render(ViewContext viewContext, TextWriter writer)

  at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
  at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
  at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass11.<InvokeActionResultWithFilters>b__e()
  at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
  at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass11.<>c__DisplayClass13.<InvokeActionResultWithFilters>b__10()

  at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)

  at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
  at System.Web.Mvc.Controller.ExecuteCore()
  at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
  at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext)
  at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext)
  at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext)
  at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext)
  at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
  at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

TargetSite :Void set_ContentType(System.String)

请建议此例外。

3 个答案:

答案 0 :(得分:6)

通过在控制器中返回空结果来解决此错误

返回新的EmptyResult();

答案 1 :(得分:0)

作为一个建议,当我遇到这个问题时,原因是我在开始编写代码块之前已经有了空格/新行/ html代码。在致电您的职能部门之前,请检查您是否没有向客户发送内容。

答案 2 :(得分:0)

任何事情,我的意思是在您打算设置的标头之前发送到客户端的任何会导致此错误。在某些情况下,在某些情况下,您的应用会在您想要的标题之前向客户端发送内容。