У меня есть API, где мне нужно проверить мою модель пользователя. Я выбираю подход, в котором я создаю разные классы для создания/редактирования действий, чтобы избежать массового присвоения и разделить валидацию и фактическую модель.
Я не знаю, почему, но ModelState.IsValid
возвращает true, даже если это не так. Я что-то делаю неправильно?
Controller
public HttpResponseMessage Post(UserCreate user)
{
if (ModelState.IsValid) // It valid even when user = null
{
var newUser = new User
{
Username = user.Username,
Password = user.Password,
Name = user.Name
};
_db.Users.Add(newUser);
_db.SaveChanges();
return Request.CreateResponse(HttpStatusCode.Created, new { newUser.Id, newUser.Username, newUser.Name });
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
Model
public class UserCreate
{
[Required]
public string Username { get; set; }
[Required]
public string Password { get; set; }
[Required]
public string Name { get; set; }
}
Проверка отладки