Итак, я получил почтовый запрос на то, чтобы пользователь зарегистрировал все работает, но в почтовом запросе я могу пропустить, скажем, «Имя» и «Фамилия», и он все равно создаст учетную запись в моей БД, но я хочу, чтобы он выдает ошибку, когда одно из указанных значений не введено. Вот код, который у меня сейчас есть.
//Post api/Accounts/Register
[HttpPost("Register")]
public IActionResult Register([FromBody]User u, string name, string lastname, string birthday, string password, string gender, string streetname, string email, string housenumber, string addition, string postalcode, string city, string phonenumber)
{
var UserData = from user in _context.users
where (name == u.Name &&
lastname == u.LastName &&
birthday == u.Birthday &&
password == u.Password &&
gender == u.Gender &&
streetname == u.Street_Name &&
email == u.email &&
housenumber == u.House_Number &&
addition == u.Addition &&
postalcode == u.Postalcode &&
city == u.City &&
phonenumber == u.Telephone_Number)
select u;
//Check for potential errors
bool DupeMail = _context.users.Any(Dupe => Dupe.email == u.email);
bool PhoneCheck = _context.users.Any(CheckPhone => CheckPhone.Telephone_Number == u.Telephone_Number);
//Criteria check
if (DupeMail)
{
return BadRequest("Email bestaat niet of is al in gebruik");
}
if (PhoneCheck)
{
return BadRequest("Telefoon nummer bestaat niet of is al in gebruik");
}
if (DupeMail == false && PhoneCheck == false)
{
if(ModelState.IsValid)
{
_context.users.Add(u);
_context.SaveChanges();
return Ok("Account Created");
} else {
var errors = ModelState.Select(x => x.Value.Errors)
.Where(y=>y.Count>0)
.ToList();
return BadRequest(errors);
}
}
else
{
return NoContent();
}
}
Я пытался.
if(name == null)
{
return BadRequest("Please fill in everything");
}
Но когда я это делаю, ВСЕГДА получаю послание, чтобы вернуть плохой запрос. Я поместил этот кусок кода под select u;
Также, когда я Console.WriteLine (имя); до возврата BadRequest ничего не печатается, поэтому я не могу проверить if (name == null), потому что оно всегда равно null, но как мне проверить, отправлено ли все, что было указано, или нет?
Любое понимание было бы потрясающим, я не могу понять, как проверить, не передается ли значение через мое тело: (