我一直在跟着有关如何在我的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
并包含我的自定义消息时,在浏览器中运行代码时该消息不会显示。我无法弄清楚发生了什么,我尝试在网络上研究答案,但是即使我确定某个地方已经找到答案,也没有对我有意义的答案。有人可以为我提供“外行条款”解决方案吗?
答案 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" })