【发布时间】:2016-01-08 10:46:54
【问题描述】:
我有两个 WebApi2 动作,每个动作都可以单独工作:
[System.Web.Http.HttpPost]
public async Task<HttpResponseMessage> MigrateUser([FromBody] MigrateUserModel userInfo)
和
[System.Web.Http.HttpPost]
public async Task<HttpResponseMessage> ChangeEmail([FromBody] ChangeEmailModel model)
当它们都存在时,我都会收到 404 错误。我必须做什么才能找到 POST .../ChangeEmail 和 .../MigrateUser?有没有办法在没有明确的基于属性的路由的情况下做到这一点(会是什么?)。
以下 HttpGet 工作正常,不需要 Route()...
[System.Web.Http.HttpGet]
public async Task<TcMarketUserFullV1> GetIdmCtoUsrFromEmail(string email)
和
[System.Web.Http.HttpGet]
public async Task<TcMarketUserFullV1> GetIdmCtoUsrFromGuid(string ctoguid)
【问题讨论】:
-
使用 Route() 属性区分两者。
-
你建议 AttributeRouting 是唯一的方法? asp.net/web-api/overview/web-api-routing-and-actions/…
-
是的,AttributeRouting就是这样,但我并不是说这是只有的处理方式,可能还有别的方式。
-
你能分享你用来调用 HttpGet 的两个动作的 URL 吗?我只是想知道。
-
以上更新。两者都使用最简单形式的 url 和查询参数作为“base-url/action-name?param=xyz”来解决。工作正常,这就是为什么我很惊讶地看到帖子/正文需要添加。
标签: c# asp.net asp.net-web-api2