0

我是 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; }
}

并为它设计一个id = "CustomLogin"的表单,它的action="User/Validate"Validate操作返回JsonResult

web.config 中,

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

在我的_Layout.cshtml 中,

@Scripts.Render("~/bundles/jqueryval")

现在,如果我直接单击表单 (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
            });
     });

它也被执行。所以可以吗..??

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

不显眼的 javascript 可防止对我的发布请求“用户/验证”进行跳转控制,

那么它也应该阻止我的提交事件。为了解决这个问题,我 在提交事件处理程序中使用了 $("form").valid() 。

像这样,

  if ( $("#CustomLogin").valid() ) 
  {
       alert('I executed.');
  }

我认为 Unobtrusive javascript 使表单状态:无效或有效......

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

使用 Unobtrusive javascript 进行验证...???? **

这可以吗..或者我做错了

4

1 回答 1

0

因为您的模型无效,并不一定意味着您不想与服务器通信。这只是意味着您不想提交该模型。

于 2012-09-23T17:25:06.227 回答