Asp.net mvc MVC验证模型属性:不进行客户端验证,只进行服务器端验证

Asp.net mvc MVC验证模型属性:不进行客户端验证,只进行服务器端验证,asp.net-mvc,Asp.net Mvc,我在ASP.NETMVC5.2项目中安装了jQuery.Validation 1.15.0,我正在尝试学习MVC的基础知识,目前正在验证模型数据 我的印象是,我添加的验证属性将生成客户端验证,并且在所有客户端验证都通过之前不会发生回发。然而,尽管验证通常是有效的,但每次都会发生回发,即使没有提供VendorId的值 public class StateAssessmentViewModel { [Required(ErrorMessage = "Vendo

我在ASP.NETMVC5.2项目中安装了jQuery.Validation 1.15.0,我正在尝试学习MVC的基础知识,目前正在验证模型数据

我的印象是,我添加的验证属性将生成客户端验证,并且在所有客户端验证都通过之前不会发生回发。然而,尽管验证通常是有效的,但每次都会发生回发,即使没有提供VendorId的值

public class StateAssessmentViewModel
{                
    [Required(ErrorMessage = "Vendor ID is required")]   
    [MaxLength(4, ErrorMessage="{0} can not be longer than {1} characters." )]      
    [Display(Name = "Vendor ID")]
    public int VendorId { get; set; }

    [Display(Name = "Effective Date")]
    [DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)]
    public DateTime EffectiveDate { get; set; }
}
站点确认,如果浏览器ChromeV49中启用了Javascript,则应首先在客户端上执行验证,并且是这样。事实上,“生效日期”字段上有一个有效的jQuery日历,因此Javascript肯定是启用的

我可以寻找什么来帮助我确定为什么根本没有在客户机上执行验证

以下是查看源代码时生成的html:

<div class="form-group">
            <label class="control-label col-md-2" for="VendorId">Vendor ID</label>
            <div class="col-md-10">
                <input class="input-validation-error form-control text-box single-line" data-val="true" data-val-maxlength="Vendor ID can not be longer than 4 characters." data-val-maxlength-max="4" data-val-number="The field Vendor ID must be a number." data-val-required="Vendor ID is required" id="VendorId" max="4" min="0" name="VendorId" type="number" value="3333a" />
                <span class="field-validation-error text-danger" data-valmsg-for="VendorId" data-valmsg-replace="true">The value &#39;3333a&#39; is not valid for Vendor ID.</span>
            </div>
        </div>

供应商ID
值';3333a';对于供应商ID无效。
我也在使用Bootstrap,并尝试过滤VendorId字段的非数字击键,但这没有效果。我还尝试设置最大和最小长度

我还希望EffectiveDate模型属性上的DisplayFormat属性会产生一些客户端影响。事实并非如此。下面是通过对“查看源代码”执行一次操作生成的HTML


生效日期
“生效日期”字段是必填字段。

为什么没有进行客户端验证?

您是否在BungleConfig.cs类中包含jquery验证库?如果是,您是否在布局文件中包含该脚本包?考虑到它生成的HTML,它应该可以工作

您是否在
bungeconfig.cs
类中包含jquery验证库?如果是,您是否在布局文件中包含该脚本包?考虑到它所产生的HTML,它应该可以正常工作。我很惊讶我没听懂。给我一个答案,我会记下来的。非常感谢。很乐意帮忙!第二双眼睛的老把戏:)如果我做对了,我想我需要这两个脚本文件。删除一个或多个otehr会导致错误。包括这两个,我工作了。添加(新脚本包(“~/bundles/jquery验证”)。包括(“~/Scripts/jquery.validate.min.js”、“~/Scripts/jquery.validate.unobtrusive.min.js”);
<div class="form-group">
    <label class="control-label col-md-2" for="EffectiveDate">Effective Date</label>
    <div class="col-md-10">
        <input class="input-validation-error form-control text-box single-line" data-val="true" data-val-date="The field Effective Date must be a date." data-val-required="The Effective Date field is required." id="txtEffectiveDate" name="EffectiveDate" type="datetime" value="" />
        <span class="field-validation-error text-danger" data-valmsg-for="EffectiveDate" data-valmsg-replace="true">The Effective Date field is required.</span>
    </div>
</div>