Asp.net mvc 这真的是非结构化的jquery验证吗?
根据这一定义: 低调的JavaScript避免将内联JavaScript注入HTML。这使您的HTML更小、更不杂乱,并且更容易交换或自定义JavaScript库 然而,在阅读本文时: 博主说: 现在,为了急切地执行验证,即每次当用户字段聚焦时执行验证,您需要在页面底部添加此脚本 我不知道我是否感到困惑,但对我来说,非结构化的javascript验证意味着简单地说,页面上没有javascript代码,只有对具有逻辑的.js文件的引用。通过这种方式,您可以将验证逻辑与表示分离 话虽如此,我希望在下面的表格中启用非结构化验证。我看到的唯一区别是: 1.第一行:我没有Asp.net mvc 这真的是非结构化的jquery验证吗?,asp.net-mvc,asp.net-mvc-3,entity-framework,entity-framework-4,unobtrusive-javascript,Asp.net Mvc,Asp.net Mvc 3,Entity Framework,Entity Framework 4,Unobtrusive Javascript,根据这一定义: 低调的JavaScript避免将内联JavaScript注入HTML。这使您的HTML更小、更不杂乱,并且更容易交换或自定义JavaScript库 然而,在阅读本文时: 博主说: 现在,为了急切地执行验证,即每次当用户字段聚焦时执行验证,您需要在页面底部添加此脚本 我不知道我是否感到困惑,但对我来说,非结构化的javascript验证意味着简单地说,页面上没有javascript代码,只有对具有逻辑的.js文件的引用。通过这种方式,您可以将验证逻辑与表示分离 话虽如此,我希望在下
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<EagerlyPerformingValidation.Models.UserInformation>
根据您(正确)的理解进行的不引人注目的验证有点“懒惰”,因为它只在您提交表单时触发。您链接到的博客帖子引用的javascript代码只会在每次您的选项卡脱离控件时触发验证。您是对的,它并不是像所展示的那样真正不引人注目的javascript
我认为让它变得不引人注目的方法是,要么给每个控件添加数据-
属性(这很痛苦),然后编写代码来注入脚本,要么将他的一点脚本添加到您正在引用的一个主要javascript文件中,这可能是他的意图
本书第8章对此有一点很酷:根据您(正确)的理解进行的不引人注目的验证有点“懒惰”,因为它只在您提交表单时触发。您链接到的博客帖子引用的javascript代码只会在每次您的选项卡脱离控件时触发验证。您是对的,它并不是像所展示的那样真正不引人注目的javascript
我认为让它变得不引人注目的方法是,要么给每个控件添加数据-
属性(这很痛苦),然后编写代码来注入脚本,要么将他的一点脚本添加到您正在引用的一个主要javascript文件中,这可能是他的意图
这本书的第8章对此有一点很酷:我创建了一个外部js文件,并添加了blogger显示的代码,并且成功了,我看不出表单开头这一行的意图。当您使用Razor时,视图中的这一位被您的@model
声明所取代,因此您的声明没有它是正确的。我创建了一个外部js文件,并添加了blogger显示的代码,它起了作用,我看不到表单开头这一行的意图。当您使用Razor时,该位将被视图中的@model
声明所取代,因此您的视图中没有它是正确的。
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>