2016-11-10 88 views
0

所以我的问题与其他问题稍有不同。对于其他人,他们直接使用Response.Redirect(url);,所以修复只是绕过它。“RedirectToAction()发送后不能重定向HTTP标头”()

不过,我有类似相同的控制器内的以下内容:)直接

public ActionResult Index() 
{ 
    // some other logic running inside this function... 

    return RedirectToAction("Result"); 
} 

public ActionResult Result() 
{ 
    // Expecting calls being sent from Index 

    return View ("done"); 
} 

所以我没有真正调用的Response.Redirect(但RedirectToAction()调用可能Response.Redirect的()最终。在这种情况下,我能做什么?

这些堆栈跟踪:

SYSTEM EXCEPTION: 
- Message: Cannot redirect after HTTP headers have been sent. 
- Source: System.Web 

- Stack Trace: 
    at System.Web.HttpResponse.Redirect(String url, Boolean endResponse, Boolean permanent) 
    at System.Web.HttpResponseWrapper.Redirect(String url, Boolean endResponse) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) 
    at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) 
+1

似乎很直着我Response.Headers.Clear()之前RedirectToAction。在重定向之前的某个地方,您正在修改HTTP标头。但是,鉴于您已经编写了代码,谁知道发生了什么。 –

+0

[我为什么在调用Response.Redirect()?]时得到“HTTP头文件发送后无法重定向”的可能副本(http://stackoverflow.com/questions/159523/why-do-i-get-不能重定向消息后,HTTP报头具备的,被发送的 - 当 - 我 - 叫清晰度) –

回答

0

呼叫