@ Html.ValidationSummary (true, «Пожалуйста, исправьте ошибки») не отображает сообщение «Пожалуйста, исправьте ошибки» - PullRequest
0 голосов
/ 23 декабря 2018

Я читал учебное пособие о том, как реализовать проверку в моем веб-приложении MVC.Ниже приведен фрагмент моего представления для создания нового ученика:

<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 голосов
/ 23 декабря 2018

Передайте требуемый сводный оператор во втором параметре, как этот.

@Html.ValidationSummary(true, "Please check form errors", new { @class = "text-danger" })
0 голосов
/ 23 декабря 2018

Чтобы показать сообщение changevalumSummary как true и отобразить пользовательское сообщение об ошибке в неполе, используйте ModelState.AddModelError ("", "Error error") без ключа.validationSummary true case не ключевая ошибка модели добавлена ​​в неупорядоченный список и сообщения об ошибках модели поля, отображаемые в ValidationMessageFor.

ModelState.AddModelError ("", "Error error");

...