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)の「送信」ボタンを直接クリックすると、正しいUser/Validateにジャンプできなくなります。

しかし、外部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.');
  }

目立たないjavascriptがフォームの状態を作ると思います:無効または有効...

**> しかし、私の質問は、$("form").valid() を使用する必要があるかどうかです。

USE OF Unobtrusive JavaScript for validation...???? **

それでこれは大丈夫ですか..または私は間違った方法でやっています

4

1 に答える 1

0

モデルが無効であるため、必ずしもサーバーと通信したくないというわけではありません。そのモデルを提出したくないということです。

于 2012-09-23T17:25:06.227 に答える