c# - Webapi 2 属性路由

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

我在用户 Controller 中设置了以下路由:

[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 (帖子被选中)

post 是否需要在正文中发送数据?任何人都可以看到我做错了什么以及为什么找不到验证路由吗?

最佳答案

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

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

如果您在请求中添加尾部斜杠 / 它应该可以工作。

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

关于c# - Webapi 2 属性路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38829348/

相关文章:

javascript - 在C#中删除一个字符

c# - 在 C# 中使用 OpenGl?

javascript - GridView RowUpdating 在第二页中不起作用

c# - 应用程序见解和标签

c# - REST API 设计 - 使用请求主体删除多个项目

c# - 返回嵌套数组 JSON 结果的 WEB API C#

c# - .NET 运行时处理通用代码

c# - 将 README.md 文件添加到 Visual Studio 2015 中的 c# 项目

c# - 使用 StreamReader 文本中的 XElement 创建新的 XDocument

Json 多数组的 C# Web API POST 方法