5

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

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);
    }
4

2 回答 2

8

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

return Redirect("~/Default.aspx");
于 2013-03-29T16:48:59.353 回答
4

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

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

于 2013-03-29T17:00:02.393 回答