在 asp.net 核心中实现可选查询参数的正确方法是什么?
What is the proper way to implement optional query paramters in asp.net core?
所以我有一个通用的 URL,在我的 React 应用程序的多个地方使用它来向我的 asp.net 核心 api 发送调用。
现在由于更改要求,我需要使用相同的 url 但在一个特定场景中,我需要发送一个额外的查询参数。
我想在不影响当前实现的情况下使用相同的 url。
请建议或指导我在 asp.net 核心中以正确的方式实现这一点。
关于WebApi中可选的查询参数,通常的做法是加上?
,但是只能和参数的顺序一一对应。
[Route("get/{a?}/{b?}")]
public IActionResult get( string a, string b)
{
return Ok(new { a,b});
}
如果使用多个[Route]
达到和上面一样的目的。可以根据数据类型匹配对应的值。
[Route("get/{a}")]
[Route("get/{a}/{b}")]
[Route("get/{b:int}")]
public IActionResult get( string a, int b)
{
return Ok(new { a,b});
}
其他规则可以参考Christoph Lütjen在评论中提供的文档。
所以我有一个通用的 URL,在我的 React 应用程序的多个地方使用它来向我的 asp.net 核心 api 发送调用。 现在由于更改要求,我需要使用相同的 url 但在一个特定场景中,我需要发送一个额外的查询参数。 我想在不影响当前实现的情况下使用相同的 url。 请建议或指导我在 asp.net 核心中以正确的方式实现这一点。
关于WebApi中可选的查询参数,通常的做法是加上?
,但是只能和参数的顺序一一对应。
[Route("get/{a?}/{b?}")]
public IActionResult get( string a, string b)
{
return Ok(new { a,b});
}
如果使用多个[Route]
达到和上面一样的目的。可以根据数据类型匹配对应的值。
[Route("get/{a}")]
[Route("get/{a}/{b}")]
[Route("get/{b:int}")]
public IActionResult get( string a, int b)
{
return Ok(new { a,b});
}
其他规则可以参考Christoph Lütjen在评论中提供的文档。