【发布时间】:2011-12-10 01:47:54
【问题描述】:
根据这个定义here:
不显眼的 JavaScript 避免将内联 JavaScript 注入 HTML。这使您的 HTML 更小、更简洁,并且更容易换出或自定义 JavaScript 库。
但是在阅读此blog 时: 博主说: 现在要急切执行验证,即每次用户字段聚焦时执行验证,您需要在页面底部添加此脚本。
我不知道我是否感到困惑,但对我来说,不显眼的 javascript 验证意味着简单地说,页面上没有 JAVASCRIPT 代码,只有对具有逻辑的 .js 文件的引用。这样,您就可以将验证逻辑与演示文稿分开。
话虽如此,我想在下面的表单中启用不显眼的验证。我看到的唯一区别是: 1. 第 1 行:我没有。
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<EagerlyPerformingValidation.Models.UserInformation>
- 我应该将 jquery 逻辑添加到外部 javascript 文件并引用它。
我在这里错过了什么吗??
public class Position{
[DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.Identity)]
public int PositionID { get; set; }
[Required(ErrorMessage = "Position name is required.")]
[StringLength(20, MinimumLength = 3, ErrorMessage = "Name should not be longer than 20 characters.")]
[Display(Name = "Position name")]
public string name { get; set; }
[Required(ErrorMessage = "Number of years is required")]
[Display(Name = "Number of years")]
[YearsValidationAttribute(5, ErrorMessage = "{0} value must be greater than {1} years.")]
public int yearsExperienceRequired { get; set; }
public virtual ICollection<ApplicantPosition> applicantPosition { get; set; }
}
@model Data.Model.Position
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Position</legend>
<div class="editor-label">
@Html.LabelFor(model => model.name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.name)
@Html.ValidationMessageFor(model => model.name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.yearsExperienceRequired)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.yearsExperienceRequired)
@Html.ValidationMessageFor(model => model.yearsExperienceRequired)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 entity-framework entity-framework-4 unobtrusive-javascript