Webapi 2属性路由

时间:2016-08-08 12:33:31

标签: c# asp.net asp.net-web-api2 attributerouting

我在用户控制器中设置了以下路由:

[EnableCors("*", "*", "*")]
[RoutePrefix("api/users")]
[Authorize]
public class UserController : ApiController
{
    [Route("")]
    public IHttpActionResult Get() 
    {
    }

    [HttpGet]
    [Route("{id:int}")]
    public IHttpActionResult Get(int id) 
    }

    [HttpPost]
    [Route("validateUser")]
    public IHttpActionResult ValidateUser()
    {
    }

    [HttpPost]
    [Route("verify/{identityId}/{emailAddress}")]
    public void VerifyUserEmailAddress(string identityId, string emailAddress)
    {
    }
}

前三条路线运行得很好。但第四次失败的是404.我用fiddler来打电话:

http://localhost:39897/api/users/verify/asldkfj/jb@test.com(已选中帖子)

帖子是否需要在正文中发送数据?任何人都可以看到我做错了什么以及为什么没有找到验证路线?

1 个答案:

答案 0 :(得分:1)

电子邮件中的.com是问题所在。

确定它是一封有效的电子邮件,但IIS将带有文件扩展名的请求视为实际文件请求,并尝试在磁盘上查找它。当它找不到它时,你会得到404 Not Found

如果您向请求添加尾部斜杠/,它应该可以正常工作。

http://localhost:39897/api/users/verify/asldkfj/jb@test.com/

相关问题