我有两张桌子,人和国籍。人通过NATIONALID对国籍表有一个FK。在我的创建人员表单中,我有一个填充了国际象征和国籍描述的下拉列表。验证此下拉列表以处理使用开发人员工具栏等人将更改的发布值更改为无效的国籍/地区ID的最佳方法是什么? 我一直在寻找在viewmodel中使用System.DataAnnotations.AssociationAttribute但我不确定这是否是我所需要的。
答案 0 :(得分:1)
此类验证应由业务层执行。例如:
[HttpPost]
public ActionResult Update(int nationalityId, int personId)
{
string error;
if (!Repository.TryUpdatePersonNationality(personId, nationalityId, out error))
{
// The business layer failed to perform the update
// due to FK constraint violation => add the error to model state
ModelState.AddModelError(nationalityId, error);
// redisplay the form so that the user can fix the error
return View();
}
return RedirectToction("Success");
}