当前位置: 首页 > 知识库问答 >
问题:

如何为可枚举类型返回NotFound()。

公孙俊弼
2023-03-14

我正在尝试为此方法返回NotFound,但收到以下错误:

Cannot implicitly convert type 'Microsoft.AspNetCore.Mvc.NotFoundResult' to 'System.Collections.Generic.IEnumerable<myapp.WeatherForecast>'. An explicit conversion exists (are you missing a cast?)

不明白应该怎么投,参数等于“1”想退一个404

[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public IEnumerable<WeatherForecast> Test(int param)
{
    var rng = new Random();

    if (param == 1)
    {
        // Trying to return NotFound here
        return NotFound();
    }

    return Enumerable.Range(1, 5).Select(index => new WeatherForecast
    {
        Date = DateTime.Now.AddDays(index),
        TemperatureC = rng.Next(-20, 55),
        Summary = Summaries[rng.Next(Summaries.Length)]
    })
    .ToArray();
}

我只需要这样做:公共行动结果

也许我应该关闭它,但现在我仍然对它有什么影响感到困惑。以前我只是返回一个可枚举的,现在(如果参数不==1)我将返回一个包含在操作结果中的可枚举的?


共有2个答案

赵镜
2023-03-14

你没有。从控制器操作、Razor 页面 OnGet() 或需要返回 IActionResult 的任何其他位置返回 NotFound(),以指示请求应返回“找不到 404”错误。

全誉
2023-03-14

更改IENumable

public IActionResult Test(int param)

或者为了类型安全

public ActionResult<IEnumerable<WeatherForecast>>

编辑:

ASP。NET Core为web API控制器操作返回类型提供以下选项:

 - Specific type 
 - IActionResult 
 - ActionResult<T>

本文档解释了何时最适合使用每种返回类型。

 类似资料:
  • 问题内容: 例如,我该怎么做: 结果示例: 问题答案: 迅捷4.2+ 从Swift 4.2(使用Xcode 10)开始,只需添加协议一致性即可从中受益。要添加此协议一致性,您只需要在某处写: 如果枚举是您自己的,则可以直接在声明中指定一致性: 然后,以下代码将打印所有可能的值: 与早期Swift版本(3.x和4.x)的兼容性 如果您需要支持Swift 3.x或4.0,则可以通过添加以下代码来模仿S

  • 问题内容: 在Java中,我有: 我希望本机方法“ nativeGetStatus”返回此枚举值。 JNI返回整数并与java中的enum的值进行比较是一个选项,但是想知道是否可以通过jobject返回值并将其直接分配给state吗?如果是,怎么办? 问题答案: 当然可以。枚举值是Enum类的公共静态字段,因此您可以使用此官方手册编写代码。只需从JNI获取字段并将其作为jobject返回即可。

  • 例如,我如何做类似的事情: 结果示例:

  • 我的模式如下 我正在尝试编写一个方法来检查代码并返回相应的枚举。 event.getStatusCode的有效值是:A,T,U。现在我需要检查这些代码并根据代码返回枚举。我尝试了上面的方法,但它给我代码=["A"]的错误。下面是错误状态。 我该怎么解决这个问题?我是java新手。非常感谢您的帮助,谢谢