asp.net MVC不显眼的验证数据注释是否仅具有客户端验证,或者它也执行服务器端验证?
数据批注还执行客户端验证。例如,假设您在用于窗体的模型的 FirstName
属性上有以下数据批注:
[Required(ErrorMessage = "Please enter your first name.")]
public string FirstName { get; set; }
如果启用了 javascript,则验证将在客户端进行,除非用户在文本框中输入内容,否则表单不会提交。如果禁用了 javascript,或者缺少执行客户端验证的相应脚本,则验证将在服务器端进行。但是,您必须检查ModelState
是否有效,如果无效,则返回视图:
if (!ModelState.IsValid)
{
// Do something here if you need to, then return the view
return View();
}