@ Html.ValidationSummary(true,“请修复错误”)不显示“请修复错误”消息

时间:2018-12-23 01:19:00

标签: c# asp.net-mvc validation razor validationsummary

我一直在跟着有关如何在我的MVC Web应用程序中实现验证的教程。以下是用于创建新学生的“我的视图”的摘要:

<div class="form-horizontal">
    <h4>Student</h4>
    <hr />
    @Html.ValidationSummary(true)
    <div class="form-group">
        @Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.LastName, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.LastName)
        </div>
    </div>

这是我的控制器代码的片段:

 using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Data.Entity;
 using System.Linq;
 using System.Net;
 using System.Web;
 using System.Web.Mvc;
 using ContosoUniversity.DAL;
 using ContosoUniversity.Models;

 namespace ContosoUniversity.Controllers
 {
     public class StudentController : Controller
     {
          private SchoolContext db = new SchoolContext();
          public ActionResult Create()
          {
                return View();
          }

         [HttpPost]
         [ValidateAntiForgeryToken]
         public ActionResult Create([Bind(Include = 
         "ID,LastName,FirstMidName,EnrollmentDate")] Student student)
         {

             if (ModelState.IsValid)
             {
                db.Students.Add(student);
                db.SaveChanges();
                return RedirectToAction("Index");
             }

             return View(student);

        }

我的@Html.ValidationMessageFor(model => model.LastName)工作正常。甚至@Html.ValidationSummary(false)都可以正常显示我的字段错误,但是我不希望显示我的字段错误。当我将false更改为true并包含我的自定义消息时,在浏览器中运行代码时该消息不会显示。我无法弄清楚发生了什么,我尝试在网络上研究答案,但是即使我确定某个地方已经找到答案,也没有对我有意义的答案。有人可以为我提供“外行条款”解决方案吗?

2 个答案:

答案 0 :(得分:0)

要显示消息更改validationSummary为true并向非字段显示自定义错误消息,请使用不带键的ModelState.AddModelError(“”,“ Error message”)。 ValidationSummary真案例非关键模型错误已添加到ValidationMessageFor中显示的无序列表和字段模型错误消息中。

ModelState.AddModelError(“”,“错误消息”);

答案 1 :(得分:0)

像这样在第二个参数中输入所需的摘要语句。

@Html.ValidationSummary(true, "Please check form errors", new { @class = "text-danger" })