来自身体和路线参数的模型绑定web api

时间:2017-10-03 19:41:52

标签: asp.net-mvc asp.net-web-api .net-core

我需要提供一个模型,其中包含我希望在POST请求中绑定的所有参数。但是,其中一些参数来自Route,一些来自JS序列化字符串形式的正文。

WebApi中是否有办法处理这个问题,这样我就可以拥有单个对象而无需指定其他主要参数。

所以不要这样。

public async Task<IActionResult> Post(int agencyId, string stockTypeKey, int stockClassId, [FromBody] ListingPostRequest request)

我正在寻找这个

public async Task<IActionResult> Post([FromBody]ListingPostRequest request) 

public class ListingPostRequest : IRequest<ListingPostResponse>, IAgencyRequest
{
    public int AgencyId { get; set; }

    public string StockTypeKey { get; set; }

    public int StockClassId { get; set; }

    public ListingPostRequestApi Model { get; set; }
}

1 个答案:

答案 0 :(得分:0)

据我了解,[FromBody][FromUri]基本上是DefaultModelBinder的说明。它是每个参数的一个或另一个命题,你要做的是让它动态选择复杂对象参数的不同属性。也许可以通过编写自定义模型绑定器来完成,但这可能比您所使用的更复杂。

有关模型绑定和[FromBody]属性的更多信息:https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api