Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Webapi 2属性路由_C#_Asp.net_Asp.net Web Api2_Attributerouting - Fatal编程技术网

C# Webapi 2属性路由

C# Webapi 2属性路由,c#,asp.net,asp.net-web-api2,attributerouting,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 IHttpA

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

[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打电话:

(已选定职位)


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

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

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

如果在请求中添加一个尾随斜杠
/
,它应该可以工作


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

问题出在
.com
上。如果添加尾部斜杠
/
,它应该可以工作。ie
http://localhost:39897/api/users/verify/asldkfj/jb@test.com/
?它是有效电子邮件地址的一部分。如何修复它?当然这是一封有效的电子邮件,但iis将具有文件扩展名的请求视为实际文件,并尝试在磁盘上查找它。当它找不到的时候,你会得到404谢谢。。。如何修复它?添加额外的斜杠时是否有效?