C# 代码如何通过response.redirect?
我有下面的代码块。我不明白代码怎么能通过C# 代码如何通过response.redirect?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有下面的代码块。我不明白代码怎么能通过 Response.Redirect("~..") 的确如此。我认为任何超过这一行的代码都不会自动执行。我是不是错过了一些基本的东西?我发现调试器实际上在执行下一行 public ActionResult Index() { Response.Redirect("~/Default.aspx", true); string year = Utils.ConvertCodeCampYe
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);
}
您需要
返回它。这是一个函数。在您的情况下,您可以使用重定向
:
return Redirect("~/Default.aspx");
将所有Response.Redirect()
does(really)设置为指定URI的location=
响应头,并将http状态设置为302 Found
。它还会在响应中编写一个小的存根HTML,并带有指向新URI的链接,但这只是一个装饰
除非您使用允许您指定是否应通过bool
标志继续处理的重载,否则处理将继续。如果bool
标志为true,则响应处理将通过中止处理请求的线程来终止,抛出ThreadAbortException
作为副作用。我认为您对MVC框架的功能有误解。这是一种webforms方法。ActionResults必须将操作返回到函数。即使在webforms中,Response.Redirect也不会停止执行,所有超出此范围的代码仍将执行谢谢大家!真棒的答案。我应该用反射器看它,我会知道的。我重新陷入了“网络表单”的思维,忘记了思考到底发生了什么。然后让返回的actiontype无效?不,让它作为返回ActionResult