加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-core-mvc – 按内容类型,在网络核心2中的Web api属性路

发布时间:2020-12-16 07:13:35 所属栏目:asp.Net 来源:网络整理
导读:我希望能够在同一个URL上使用已发布的 JSON或表单数据. 事实上,我得到: fail: Microsoft.AspNetCore.Mvc.Internal.ActionSelector[1] Request matched multiple actions resulting in ambiguity. Matching actions: :fail: Microsoft.AspNetCore.Server.Kes
我希望能够在同一个URL上使用已发布的 JSON或表单数据.

事实上,我得到:

fail: Microsoft.AspNetCore.Mvc.Internal.ActionSelector[1]
      Request matched multiple actions resulting in ambiguity. Matching actions: 
:
fail: Microsoft.AspNetCore.Server.Kestrel[13]
      Connection id "0HLDLB0LJCPJ4",Request id "0HLDLB0LJCPJ4:00000001": An unhandled exception was thrown by the application.
Microsoft.AspNetCore.Mvc.Internal.AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied:

https://andrewlock.net/model-binding-json-posts-in-asp-net-core/建议使用不同的端点,但在这种情况下我不能这样做.

https://massivescale.com/web-api-routing-by-content-type/建议为asp.net做一个方法,例如:

[ContentTypeRoute("api/test/bytype","application/json")]

要么

[ContentTypeRoute("api/test/bytype","application/x-www-form-urlencoded")]

但在.net核心中,我们没有System.Web.Http.Routing.也许它可以被移植到使用Microsoft.AspNetCore.Mvc.Routing …但是有什么东西可以取代IHttpRouteConstraint

我的问题:.net core mvc已经内置了这样的东西吗?

例如,在Java的JAX-RS中,有@Consumes(“application / json”)

解决方法

我通过Consumes属性完成了这个:

http://example.com/payment/callback – 接受x-www-form-urlencoded.

[HttpPost]
    [Route("callback")]
    [Consumes("application/x-www-form-urlencoded")]
    public ActionResult Post([FromForm] string value)
    {

    }

http://example.com/payment/callback – 相同的网址但接受application / json.

[HttpPost]
    [Route("callback")]
    [Consumes("application/json")]
    public ActionResult Post([FromBody] JObject value)
    {

    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读