У меня есть модель с 3 свойствами, которые я хочу связать и проверить с помощью ASP.NET Core. Из этих 3 свойств 2 следует связать из тела JSON POSTed, а третье - из параметров маршрута:
public class CustomModel
{
public string Id_Model { get; set; } //Bind it from RouteData
public string Value { get; set; } //Bind it from Body
public string Type { get; set; } //Bind it from Body
}
[Route("[controller]")]
public CustomController : ControllerBase
{
[HttpPost("{Id_Model}")]
public IActionResult Post(CustomModel model)
{
return Ok();
}
}
Дело в том, что я не хочу добавлять какие-либо атрибуты всама модель (она будет объявлена в другой сборке, и мне не нужны зависимости от Microsoft.AspNetCore
в этой сборке).
Я пытался создать CustomModelBinder, но застрял только сданные маршрута доступны из bindingContext.ValueProvider
, и я не знаю, как получить данные Body / Json.
Я пытался использовать FormValueProviderFactory
, и создать экземпляр с new ValueProviderFactoryContext(bindingContext.ActionContext)
, но в результате провайдервсегда null
.
Есть идеи, как можно сделать этот тип смешанного связывания?