ASP.NET MVC3validation问题

我有以下ViewModel:

public class Bulletin1ViewModel { [Required] public String NumberDelegations { get; set; } [Required] public String TravelPlans { get; set; } } 

我希望在我的视图中使用它:

  @using ErasProject.Models @model ErasProject.Models.Bulletin1ViewModel    @using (Html.BeginForm()) { @Html.ValidationSummary(true) 

@Html.EditorFor(model => model.NumberDelegations) @Html.ValidationMessageFor(model => model.NumberDelegations)

@Html.EditorFor(model => model.TravelPlans) @Html.ValidationMessageFor(model => model.TravelPlans)

}

但是我的validation没有被触发。 无论是客户端还是服务器端。 任何人都可以知道为什么? 谢谢。

你需要添加jquery和jQuery Validation插件(以及可选的,不显眼的库)

    

所以,您的观点将如下:

 @using ErasProject.Models @model ErasProject.Models.Bulletin1ViewModel    @using (Html.BeginForm()) { @Html.ValidationSummary(true) 

@Html.EditorFor(model => model.NumberDelegations) @Html.ValidationMessageFor(model => model.NumberDelegations)

@Html.EditorFor(model => model.TravelPlans) @Html.ValidationMessageFor(model => model.TravelPlans)

}

刚刚添加了您的对象并创建了一个Add Action,如:

 public ActionResult Add() { return View(); } 

并使用Create模板和Bulletin1ViewModel类创建了一个View,如下所示:

 @model WebApp_MVC3.Models.Bulletin1ViewModel @{ ViewBag.Title = "Add"; Layout = "~/Views/Shared/_Layout.cshtml"; } 

Add

@using (Html.BeginForm()) { @Html.ValidationSummary(true)
Bulletin1ViewModel
@Html.LabelFor(model => model.NumberDelegations)
@Html.EditorFor(model => model.NumberDelegations) @Html.ValidationMessageFor(model => model.NumberDelegations)
@Html.LabelFor(model => model.TravelPlans)
@Html.EditorFor(model => model.TravelPlans) @Html.ValidationMessageFor(model => model.TravelPlans)

}
@Html.ActionLink("Back to List", "Index")

没有做更多的事情,结果是:

原始文件

在此处输入图像描述

我会重新检查一下javascript库…

不要用

  

但只需从项目的Scripts文件夹中拖放以下.js文件:

 jquery-1.4.4.min.js jquery.validate.min.js jquery.validate.unobtrusive.min.js 

这将确保您对js文件的引用是正确的。