【问题标题】:.Net 6.0 Web Api, Pass empty string as parameter value.Net 6.0 Web Api,将空字符串作为参数值传递
【发布时间】:2022-01-14 17:37:41
【问题描述】:

我开始使用 .Net 6 web api。 我写了一个非常简单的控制器:

[Route("[controller]")]
[ApiController]
public class TestController : ControllerBase
{
  [HttpGet,Route("sample")]
  public IActionResult ReturnSample(string ParameterOne, string ParameterTwo)
  {
    [... do something ...]
  }
}

问题是谁的所有参数都是强制性的。

网址:https:///test/sample?ParameterOne=Value&ParameterTwo=Value

工作正常,一切正常

网址:https:///test/sample?ParameterOne=Value&ParameterTwo=

错误: {"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","title":"出现一个或多个验证错误。","status":400,"traceId" :"00-dc73d9983b53750d2073c48bec522c70-98fe251af1accccf-00","errors":{"ParameterTwo":["ParameterTwo 字段是必需的。"]}}

如何允许空值作为参数的有效值。

谢谢 洛伦佐

【问题讨论】:

  • 这个的用例是什么?你区分空字符串和null吗?
  • 尝试在action中设置默认值为null的参数,即public IActionResult ReturnSample(string ParameterOne, string ParameterTwo = null)

标签: c# asp.net-web-api .net-6.0


【解决方案1】:

第二个参数可以设置默认值:

[HttpGet,Route("sample")]
public IActionResult ReturnSample(string ParameterOne, string? ParameterTwo = null)
{
   // ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 2017-04-25
    • 2011-12-21
    • 1970-01-01
    • 2015-07-31
    相关资源
    最近更新 更多