我想在我的应用程序中使用数据注释,问题是当我单击“提交”按钮并且未填写必填字段时,我没有看到任何错误消息并且它提交。在控制器中,model.state工作正常,但我想我应该看到错误信息。
模特:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace ValidationTest.Models
{
public class User
{
[Required(ErrorMessage = "Enter your name.")]
public string Name { get; set; }
public string Lastname { get; set; }
}
}
观点:
@model ValidationTest.Models.User
@{
ViewBag.Title = "Index";
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
@using (Html.BeginForm("Record", "Home"))
{
@Html.Label("Name:")
@Html.TextBoxFor(m => m.Name)
@Html.ValidationMessageFor(m => m.Name)
<br />
@Html.Label("Lastname:")
@Html.TextBoxFor(m => m.Lastname)
@Html.ValidationMessageFor(m => m.Lastname)
<input type="submit" value="Record" />
}
</body>
</html>
控制器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ValidationTest.Models;
namespace ValidationTest.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Record(User usr)
{
if (ModelState.IsValid)
{
return Content("It Worked!");
}
return RedirectToAction("Index");
}
}
}
在ASP.NET MVC项目内的Scripts文件夹中,我有:
bootstrap.js
bootstrap.min.js
的jquery-3.2.1.intellisense.js
的jquery-3.2.1.js
的jquery-3.2.1.min.js
jquery-3.2.1.min.map
的jquery-3.2.1.slim.js
的jquery-3.2.1.slim.min.js
的jquery-3.2.1.slim.min.js
Modernizr的-2.6.2.js
答案 0 :(得分:0)
您必须添加jquery.validate.min.js
和jquery.validate.unobtrusive.min.js
的JavaScript脚本引用才能运行客户端验证。
答案 1 :(得分:0)
移动返回RedirectToAction(&#34;索引&#34;); if if(ModelState.IsValid)条件。 return view();如果条件,应该在外面添加。