首页 > 解决方案 > 如何让 .Net Core Action 返回 Nothing 或 Redirect

问题描述

使用 .Net Core 2.2 我有几个控制器动作重定向到另一个动作。更具体地说,有几个 API 调用,每个调用都可能失败或通过。如果通过,它将重定向到执行下一个 API 调用的另一个控制器操作。

如果 API 操作返回失败代码,我不希望它重定向,而是希望在 UI 中向用户显示消息。为此,我的操作会触发通过 javascript 在 UI 中获取的 SignalR 消息。

这导致了我的问题,

控制器中的操作可以不返回任何内容吗?我的意思是我希望它要么重定向到另一个动作,要么根本不重定向或刷新页面。本质上让它像一个 Void 函数一样,也有返回的能力。

标签: asp.net-mvcasp.net-core

解决方案


您可以定义一个操作返回IActionResult,然后返回您需要的任何结果

public IActionResult MultiAction()
{
    ...
    if (failed)
    {
        return Json(new { message = "Error" });
    }
    else if (something)
    {
        return Redirect("/myurl");
    }

    return NoContent();
}

推荐阅读