ASP.NET model binder doesn't fill model values

51 Views Asked by At

I want to use global Model Validation filter for all my controllers in ASP.NET 5 application.
But I faced with a problem that default binder doesn't fill model values from URI (but works fine for bodied POST actions). For example, I have controller with action:

public class TestController : ApiController
{
  [HttpGet, Route("test/{id}"/return)]
  public int TestAction([FromUri] TestModel model)
  {
    return model.Id;
  }

  public class TestModel
  {
    [Required]
    public int? Id { get; set; }
  }
}

Requesting this controller by URI, for example, localhost:12345/test/10/return, returning 'null' response. The same for another complex models, accessing some of [Required]-marked fields throws a NRE, like binder ignores {id} expression in route.

Any ideas where this behaviour can be turned off?

1

There are 1 best solutions below

0
On

Sorry for your attention, seems to be there was something like typo or error in property names.
I tried to re-implement test actions with complex models as arguments for methods and now everything works as expected.