【发布时间】: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 => model.LastName) 可以正常工作。甚至@Html.ValidationSummary(false) 也可以按预期显示我的字段错误,但我不希望显示我的字段错误。当我将false 更改为true 并包含我的自定义消息时,当我在浏览器中运行我的代码时,该消息不会显示。我无法弄清楚发生了什么,并且我尝试在网络上研究答案,但没有对我有意义的答案,即使我确信它已经在某个地方得到了回答。有人可以为我提供这个问题的“外行术语”解决方案吗?
【问题讨论】:
-
迈克尔,什么不工作?你能说出到底想要完成什么吗?您还可以发布您的控制器代码吗?控制器代码将确定生成哪些错误?
-
会的。刚刚编辑了我的问题。我正在尝试创建一个新学生(用于大学入学申请)。我希望显示字段错误(那里不是问题),然后我希望验证摘要就是:没有字段错误的摘要。
-
请检查this链接,它应该对你有帮助。
标签: c# asp.net-mvc validation razor validationsummary