billbogaiv / hybrid-model-binding

Provides the ability to bind models using both ModelBinder and ValueProvider in ASP.NET Core.
MIT License
104 stars 19 forks source link

Binder does not work when used with Newtonsoft.Json #61

Open Misiu opened 2 years ago

Misiu commented 2 years ago

I've noticed that after adding HybridModelBinding to my project JsonProperty attributes stopped working.

Below is a very simple controller that allows testing this behaviour:

namespace HybridModelBinding.Samples.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class DataController : ControllerBase
    {
        [HttpPost()]
        public ActionResult<string> GetResCreateponse([FromHybrid]SimpleDto dto)
        {
            return Ok($"Hello {dto.Name} {dto.IsAdmin}");
        }
    }

    public class SimpleDto
    {
        public string Name { get; set; }

        [JsonProperty("is_admin"), JsonPropertyName("is_admin")]
        [HybridBindProperty(Source.Body)]
        public bool IsAdmin  { get; set; }
    }
}

Every time I do a request I get this behavior: image

When I remove AddHybridModelBinder from Startup everything works as expected.

Does HybridModelBinding work when used with Newtonsoft.Json? @billbogaiv your feedback is more than welcome.