I am having some problems parsing my model in ASP.NET MVC API
This is my API controller:
public class UserController : ApiController { // Hent liste af personer public IEnumerable<UserModel> Get() { return new UserModel[] { new UserModel(), new UserModel() }; } // Hente enkelt person public UserModel Get(int id) { return new UserModel(); } // Opret person [ValidationActionFilter] public CreateUserRespose Post([FromBody]UserModel model) { CreateUserRespose rs = new CreateUserRespose(); return rs; } // Rediger person public UserModel Put(int id, [FromBody]UserModel model) { return new UserModel(); } // Slet person public UserModel Delete(int id) { return new UserModel(); } }
}
And the UserModel:
public class UserModel { [Required] [StringLength(500)] public String FristName { get; set; } [Required] [StringLength(500)] public String LastName { get; set; } [Required] [StringLength(250)] public String Email { get; set; } [Required] public String MatrikelId { get; set; } }
When I call though Fiddler to the Post command with the following body
FirstName=Fistname MiddleName&LastName=SomeName&[email protected]&MatrikelId=1234
Will the action Post be called, but the model is null, and ModelState.IsValid is true, the same happens if I send no data with the body! What am I doing wrong here?
Update: I have tryed sending the data as json instead Fiddler:
User-Agent: Fiddler Host: localhost:51268 Content-Length: 102 Content-type: application/json {"FristName":"Kasper asdasd","LastName":"asdasdasd","Email":"[email protected]","MatrikelId":"132456asd"}
But should the model state not be invalid when the model is null?
Content-Type
header value in your request?[FromBody]
infront of the parametersapplication/x-www-form-urlencoded
it should resolve the issue. If you confirm it was your issue I will describe details in answer.