Проверка новых данных лучше в Контроллере или через JS?
Приблизительно такой грамосткий и ужасный код получается :
[HttpPost]
public IActionResult AllCustomers(Customer customer, OldIdForCheck oldITNforcheck)
{
customer.UpdateDate = DateTime.Now;
customer.CustomerITN = customer.CustomerITN.Replace(" ", string.Empty);
//_________________________________
if (customer.CustomerITN != oldITNforcheck.OldITN)
{
if (db.Custumers.FirstOrDefault(x => x.CustomerITN == customer.CustomerITN) != null || db.Founders.FirstOrDefault(x => x.FounderITN == customer.CustomerITN) != null)
{
ViewBag.error = "Подобный ИНН уже существует. Каждый ИНН должен быть индевидуален";
return RedirectToAction("AllCustomers");
}
}
//..................................
if (!Regex.IsMatch(customer.CustomerITN, "^[0-9а-яА-Я?-]*$"))
{
ViewBag.error = "ИНН может содержать только цифры";
return RedirectToAction("AllCustomers");
}
//..................................
if(customer.EntityType == "юридическое лицо")
{
if (customer.CustomerITN.Length != 10)
{
ViewBag.error = "ИНН юридического лица состоит из 10 цифр";
return RedirectToAction("AllCustomers");
}
}
//..................................
if(customer.EntityType == "индивидуальный предприниматель")
{
if (customer.CustomerITN.Length != 12)
{
ViewBag.error = "ИНН индивидуального предпринимателя состоит из 12 цифр";
return RedirectToAction("AllCustomers");
}
}
//_________________________________
{
db.Entry(customer).State = EntityState.Modified;
db.SaveChanges();
}
return RedirectToAction("AllCustomers");
Хотел спросить у знатоков, подобную проверку прямо на странице лучше проводит через JS или в контроллере все же лучше.
Ответы (1 шт):
Автор решения: Jagailo
→ Ссылка
При MVC архитектуре - на стороне сервера лучше валидировать форму, в модели. Там, где к бд обращение - в контроллере, а лучше в каком-нибудь валидаторе, чтобы метод не захламлять ифами.