Asp.net MVC客户端验证

时间:2014-06-01 17:28:08

标签: jquery ajax asp.net-mvc-5 ajax.beginform

我正在构建asp.net mvc5应用程序,但没有足够的知识来解决它。我有一个需要验证的表单,然后使用ajax发布。我使用Ajax.BeginForm()

@using (Ajax.BeginForm("ActionMethod", "Controller", new { id =
 "form"}, new AjaxOptions { HttpMethod = "POST", OnBegin =
 "FormValidation", OnSuccess = "WriteMessage" }))

内部函数FormValidation我有自己的验证代码,除其他外,我已经进行了ajax调用以从数据库中获取数据。如果函数返回false表单未提交,但如果返回true表单则提交。我成功地以json格式获取数据。我获取的数据是来自ajax的内部成功回调,并且不能在其外部使用,因此内部成功回调我有验证码。但是当我在成功回调中的验证代码失败时,我希望不提交该表单,但是向用户显示该错误。如何阻止表单被提交或者可能还有另一种方法。

我的控制器操作:

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include="ID,Date,Name,Surname,Adress,ProjectName")] Data data)
        {
            if (ModelState.IsValid)
            {
                db.Data.Add(data);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(data);

        }

1 个答案:

答案 0 :(得分:0)

为什么不使用dataannotations?

http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-6

尝试这样做是因为使用Dataannotations可以处理客户端和服务器端验证

所以请尝试....