数据注释未显示错误消息

时间:2017-12-13 17:10:56

标签: c# asp.net-mvc data-annotations

我想在我的应用程序中使用数据注释,问题是当我单击“提交”按钮并且未填写必填字段时,我没有看到任何错误消息并且它提交。在控制器中,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

2 个答案:

答案 0 :(得分:0)

您必须添加jquery.validate.min.jsjquery.validate.unobtrusive.min.js的JavaScript脚本引用才能运行客户端验证。

答案 1 :(得分:0)

移动返回RedirectToAction(&#34;索引&#34;); if if(ModelState.IsValid)条件。 return view();如果条件,应该在外面添加。

相关问题