C# 如何使用带有可选参数的WebAPI 2创建真正的多用途端点?

C# 如何使用带有可选参数的WebAPI 2创建真正的多用途端点?,c#,asp.net-web-api,C#,Asp.net Web Api,谢谢你的关注 我正在尝试使以下代码正常工作: [RoutePrefix("api/user")] public class UserController : ApiController { [AllowAnonymous] [Route("{email}")] public IHttpActionResult Get(string email = null) { if (!string.IsNullO

谢谢你的关注

我正在尝试使以下代码正常工作:

[RoutePrefix("api/user")]
public class UserController : ApiController
{
[AllowAnonymous]
    [Route("{email}")]
    public IHttpActionResult Get(string email = null)
    {        
        if (!string.IsNullOrEmpty(email))
        {
            return Json(someUserProfileObject);
        }
        
        return Json(someListOfUserProfiles);
    }
}
每当我尝试访问/api/user时/some@email.com,我得到一个
405

解决了的!
请参阅下面我的答案中的解决方案。

我刚写完这个问题,就无意中找到了答案。基本上是特殊人物。我使用了查询字符串,并将代码修改为:

 [RoutePrefix("api/user")]
    public class UserController : ApiController
    {
    [AllowAnonymous]
        [Route("")]
        public IHttpActionResult Get(string email = null)
        {        
            if (!string.IsNullOrEmpty(email))
            {
                return Json(someUserProfileObject);
            }
            
            return Json(someListOfUserProfiles);
        }
    }
现在一切都正常了,如果提供了querystring,我可以使用端点来获取两个用户列表以及单个用户


干杯

祝贺你解决了你的问题。请通过发布解决方案而不是编辑问题来保持问答格式。当然,我会修改。