Asp.net mvc 4 数据注释-asp.net mvc 4

Asp.net mvc 4 数据注释-asp.net mvc 4,asp.net-mvc-4,Asp.net Mvc 4,我是MVC新手。我制作了一个模型LoginModel { [Required (ErrorMessage="Username is required field.")] [Display(Name = "User name")] public string UserName { get; set; } [Required (ErrorMessage="Password is required field.")] [DataType(DataType.Pa

我是MVC新手。我制作了一个模型LoginModel

{
    [Required (ErrorMessage="Username is required field.")]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required (ErrorMessage="Password is required field.")]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }
}
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
并使用id=“CustomLogin”及其action=“User/Validate”Validate操作返回JsonResult

web.config中,

{
    [Required (ErrorMessage="Username is required field.")]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required (ErrorMessage="Password is required field.")]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }
}
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
现在,如果我直接点击表单(CustomLogin)的“提交”按钮,那么它会阻止我跳转用户/验证,这是正确的

但是在外部Javascript中,比如说mycode.js,我也写了

 $(document).ready(
     function()
     {
          $('#CustomLogin').submit(
            function(e)
            {
               alert ('i executed.');
               //suppose, here i wrote JSON call, it will also be executed
            });
     });
它也被执行。那么这样可以吗

我的想法是,如果我单击提交按钮,而不传递任何值,

@Scripts.Render("~/bundles/jqueryval")
非结构化javascript防止对我的post请求“User/Validate”进行跳跃控制

然后它还应该阻止我的提交事件。为了解决这个问题,我在提交事件处理程序中使用了$(“form”).valid()

像这样,

  if ( $("#CustomLogin").valid() ) 
  {
       alert('I executed.');
  }
我认为非结构化javascript使表单状态为:无效或有效

**>但是,我的问题是,如果我需要使用$(“form”).valid(),那么

使用非结构化javascript进行验证**


这样行吗。。或者我做得不对,因为您的模型无效,并不一定意味着您不想与服务器通信。这只是意味着你不想提交那个模型