从void动作重定向

时间:2017-09-16 18:05:21

标签: asp.net-core-mvc

我有一个基于条件语句的void函数应该将用户重定向到另一个动作。

public void MyFunction()
{
  if (!condition)
  {
    Redirect(url);
  }
...
...
}

使用不带return语句的重定向似乎不起作用。有没有更合适的方法来实现这个目标?

2 个答案:

答案 0 :(得分:0)

Response.Redirect("Some URL")Server.Transfer("Some URL")可用于重定向任何网页

在以下情况下应使用

Response.Redirect("Some URL")

  • 将请求重定向到我们的一些纯HTML页面 服务器或其他一些Web服务器
  • 不关心在每次请求时导致额外的往返服务器
  • 不需要保留原始请求中的查询字符串和表单变量
  • 能够看到新的重定向网址 在他的浏览器中重定向(如果它的话,可以将其加入书签) 必要的)
在以下情况下应使用

Server.Transfer("Some URL")

  • 将当前页面请求转移到另一个.aspx页面上 同一台服务器
  • 保留服务器资源并避免使用 不必要的往返服务器
  • 保留查询字符串和表单变量(可选)我们不需要显示真实的URL

    我们在用户Web浏览器中重定向请求

答案 1 :(得分:0)

试试这个

public IActionResult MyFunction()
{
  if (!condition)
  {
    return Redirect(url);
  }
   ...
   ...
}

关于 IActionResult

  

动作可以返回任何内容,但经常返回一个实例   生成的IActionResult(或async方法的Task)   一个回应。动作方法负责选择什么样的   响应。操作结果会响应。

来自https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/actions

您可以在上面的链接中获得有关操作方法的更多信息