代码如何通过response.redirect?

时间:2013-03-29 16:48:19

标签: c# asp.net asp.net-mvc

我有以下代码块。我很困惑代码如何通过

Response.Redirect("~..")

确实如此。我认为过去的任何行都会自动执行。我在这里错过了一些基本的东西吗?我发现调试器实际上正在执行下一行。

    public ActionResult Index()
    {
        Response.Redirect("~/Default.aspx", true);

        string year =
           Utils.ConvertCodeCampYearToActualYear(
               Utils.GetCurrentCodeCampYear().ToString(CultureInfo.InvariantCulture));
        var viewModel = GetViewModel(year);
        return View(viewModel);
    }

2 个答案:

答案 0 :(得分:8)

你需要return它。这是一个功能。在您的情况下,您可以使用Redirect

return Redirect("~/Default.aspx");

答案 1 :(得分:4)

所有Response.Redirect()确实(确实)将location=响应标头设置为指定的URI,并将http状态设置为302 Found。它还在响应中写了一个小的存根HTML,并带有指向新URI的链接,但这只是一种装饰。

除非您使用允许您指定是否应通过bool标志继续处理的重载,否则继续处理。如果bool标志为真,则通过中止处理请求的线程终止响应处理,抛出ThreadAbortException作为副作用。