Сервер не может установить тип содержимого после отправки заголовков HTTP - PullRequest
1 голос
/ 23 мая 2009

Мне нужно сделать 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 ]

6 голосов
/ 01 июня 2009

Устранена эта ошибка путем возврата пустого результата в контроллер

вернуть новый EmptyResult ();

0 голосов
/ 23 мая 2009

Что угодно, и я имею в виду что угодно , отправленное клиенту до того, как заголовки, которые вы собираетесь установить, могут вызвать эту ошибку. Где-то, при определенных условиях, ваше приложение отправляет что-то клиенту до желаемых заголовков.

0 голосов
/ 23 мая 2009

Как совет, когда у меня возникла эта проблема, это было потому, что у меня был пробел / новые строки / HTML-код, прежде чем я начал свои блоки кода. Убедитесь, что вы что-то не отправляете клиенту, прежде чем вызывать свою функцию.

...