【问题标题】:How to have .Net Core Action return Nothing or Redirect如何让 .Net Core Action 返回 Nothing 或 Redirect
【发布时间】:2019-12-13 20:22:27
【问题描述】:

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

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

这引出了我的问题,

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • NoContent 是我正在寻找的,我使用的是EmptyResult。谢谢!
    • 完美!我一直在寻找类似 NoContent() 的东西。我永远找不到所有可能的 IActionResult 的完整列表。赞一个!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 2021-05-01
    相关资源
    最近更新 更多