我只是在 .net core 2.0 中尝试不显眼的 ajax。我正在尝试以下模型:
public class Blog
{
public int BlogId { get; set; }
[Required]
[Never(ErrorMessage = "Never say never")]
public string Url { get; set; }
public List<Post> Posts { get; set; }
class NeverAttribute : ValidationAttribute
{
public override bool IsValid(object value) => value.ToString() != "never";
}
}
我已经为这个模型生成了一个创建局部视图,所以它使用了默认的标签助手。它提交以下操作:
public IActionResult AddBlog(Blog blog)
{
if (ModelState.IsValid)
{
context.Add(blog);
context.SaveChanges();
}
return Ok("done");
}
对于正常的提交,只要我这样做就可以了return View(blog)
。它会进行客户端检查(检查 url 是否为空)然后提交给服务器。然后,进行服务器端验证(检查 url 是否为“从不”)并在不添加数据的情况下显示错误消息。
现在假设使用 Unobtrusive ajax,我可以data-ajax=true
在我的表单中添加。这将检查客户端验证并提交。一旦它验证了服务器端(NeverAttribute
),我如何在失败时在表单上显示消息?