我是MVC和Web开发的新手,我正在做一些运动工作。整个过程非常简单,但由于某种原因,我无法在整个项目中进行验证StringLength()
和Required
验证。我处理了它,检查了视图和webconfig文件,直到我放弃并一起创建了一个新项目。
我做了几乎相同的事情,但出于某种原因,Required
和StringLength
验证在我的项目的一部分上工作得很好但是没有在另一个项目上工作。所以我再次离开了一个部分工作项目,只是这次在第一个项目中工作的部分停止在另一个项目中工作。
我添加了我需要的所有脚本:jquery验证和不引人注意的
以下是我添加验证的课程:
[MetadataType(typeof (PuestoMetaData))]
public partial class Puesto
{
}
public class PuestoMetaData
{
[Required(ErrorMessage = "El campo es requerido")]
[StringLength(30, MinimumLength = 3, ErrorMessage = "El campo tiene que tener por lo minimo 3 caracteres y maximo 30 caracteres")]
public string Descripcion { get; set; }
}
其控制者:
// GET: Puesto/Create
public ActionResult Create()
{
return View();
}
// POST: Puesto/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Descripcion")] Puesto puesto)
{
if (ModelState.IsValid)
{
db.Puesto.Add(puesto);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(puesto);
}
它的观点:
@model coello_roy_Act3.Contexto.Puesto
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Puesto</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Descripcion, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Descripcion, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Descripcion, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
我不知道是否需要它,但这是由实体框架
创建的类namespace coello_roy_Act3.Contexto
{
using System;
using System.Collections.Generic;
public partial class Puesto
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Puesto()
{
this.Empleado = new HashSet<Empleado>();
}
public int Id { get; set; }
public string Descripcion { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Empleado> Empleado { get; set; }
}
}