我需要提供一个模型,其中包含我希望在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; }
}
答案 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