0

我只是在 .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),我如何在失败时在表单上显示消息?

4

0 回答 0