我有以下代码块。我很困惑代码如何通过
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);
}
答案 0 :(得分:8)
你需要return
它。这是一个功能。在您的情况下,您可以使用Redirect
:
return Redirect("~/Default.aspx");
答案 1 :(得分:4)
所有Response.Redirect()
确实(确实)将location=
响应标头设置为指定的URI,并将http状态设置为302 Found
。它还在响应中写了一个小的存根HTML,并带有指向新URI的链接,但这只是一种装饰。
除非您使用允许您指定是否应通过bool
标志继续处理的重载,否则继续处理。如果bool
标志为真,则通过中止处理请求的线程终止响应处理,抛出ThreadAbortException
作为副作用。