【问题标题】:@Html.ValidationSummary(true, "Please fix errors") not displaying "Please fix errors" message@Html.ValidationSummary(true, "Please fix errors") 不显示“请修复错误”消息
【发布时间】:2019-05-22 20:30:09
【问题描述】:

我正在关注如何在我的 MVC Web 应用程序中实现验证的教程。下面是我创建新学生的视图的 sn-p:

<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>

这是我的控制器代码的 sn-p:

 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 =&gt; model.LastName) 可以正常工作。甚至@Html.ValidationSummary(false) 也可以按预期显示我的字段错误,但我不希望显示我的字段错误。当我将false 更改为true 并包含我的自定义消息时,当我在浏览器中运行我的代码时,该消息不会显示。我无法弄清楚发生了什么,并且我尝试在网络上研究答案,但没有对我有意义的答案,即使我确信它已经在某个地方得到了回答。有人可以为我提供这个问题的“外行术语”解决方案吗?

【问题讨论】:

  • 迈克尔,什么不工作?你能说出到底想要完成什么吗?您还可以发布您的控制器代码吗?控制器代码将确定生成哪些错误?
  • 会的。刚刚编辑了我的问题。我正在尝试创建一个新学生(用于大学入学申请)。我希望显示字段错误(那里不是问题),然后我希望验证摘要就是:没有字段错误的摘要。
  • 请检查this链接,它应该对你有帮助。

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


【解决方案1】:

要将消息更改验证摘要显示为 true 并向非字段显示自定义错误消息,请使用不带键的 ModelState.AddModelError("","Error message")。 validationSummary true case non key model error 添加在无序列表中,字段模型错误消息显示在 ValidationMessageFor 中。

ModelState.AddModelError("", "错误信息");

【讨论】:

  • 看,当我看到那个解决方案时,它是有道理的,所以我尝试了它,但我仍然一无所获,所以我不知道我是否正确实施它或者是否还有其他事情发生.
【解决方案2】:

在第二个参数中传入你想要的摘要语句,像这样。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2016-09-17
    相关资源
    最近更新 更多