2017-11-19 17 views
-3

私はオンラインでフィドルを作成しました。ユーザー名「Manoj」をパスワード「kumar」として&と入力し、ログインボタンをクリックすると、「Manoj kumar」という警告メッセージが表示されます。しかし、これは起こっていない。私はユーザー名&をコントローラアクションメソッドに送信していますが、コントローラで受信していません。私が間違っていることを教えてください。MVC基本アプリケーションが動作しない

  $('.submit').click(function(){ 
       if($('form').valid()) { 
        $.ajax({ 
         url: '@Url.RouteUrl(new{ action="GetUserInfo", controller="Home"})', 
         data: JSON.stringify({userName: $("#txtUserName").val(), password: $("#txtPassword").val()}), 
          type: 'POST', 
          dataType: 'json', 
          contentType: "application/json; charset=utf-8", 
          success: function(resp) { 
          if(resp != null){ 

           if(resp.IsValidUser == true){ 
            alert(resp.FullName); 
           } 
           else{ 
            alert("Invalid Username or Password"); 
           } 

          } 

         }, 

[HttpPost] 
    public ActionResult GetUserInfo(string userName,string password) 
    { 

     ActionResult result = null; 
     bool isValidUser = false; 
     string fullName = string.Empty; 
     if(userName == "Manoj" && password == "kumar") 
     { 
      isValidUser = true; 
      fullName = userName +' ' + password; 
     } 
     else { 
      fullName = userName + ' '+password; 
     } 

     var resultObj = new {IsValidUser = isValidUser , FullName = fullName}; 

     result = Json(resultObj); 

     return result; 
    } 

以下のリンクを確認してください。

https://dotnetfiddle.net/KrWqwE

+0

コードはここには存在しません。コードタグを使用し、https://stackoverflow.com/help/how-to-askを参照してください。 – jAC

答えて

0

あなたのコードでは、と単純化することができ、

$.post('@Url.Action("Action", "Controler")',dataToPost).done(function(){ 
    //success 
}).fail(function(){ 
    //fail 
}); 

application/json部分を取り除く。 clickイベントの代わりにonsubmitイベントを使用することもできます。その上

0

あなたはform.valid(以降ご参照スクリプトでjQueryの検証を持っていることを確認してください)になります。

<script src="/Scripts/jquery.validate.js"></script> 

またはCDNはこちらをチェック:それはfalseを返しているJQuery Validate

それはdoesnの理由ですあなたのコントローラに進まないでください。

更新

準備ができて、ドキュメント内のコードを入れていることを確認し、適切にあなたのAJAX機能の閉鎖または終了ブラケットをフォーマットするには:

<script type="text/javascript"> 

    $(document).ready(fncInitialize); 

    function fncInitialize() { 
     $('#frmSubmit').click(function() {    
      if ($('form').valid()) { 
       $.ajax({ 
        url: '@Url.RouteUrl(new{ action="GetUserInfo", controller="Home"})', 
        data: JSON.stringify({ userName: $("#txtUserName").val(), password: $("#txtPassword").val() }), 
        type: 'POST', 
        dataType: 'json', 
        contentType: "application/json; charset=utf-8", 
        success: function(resp) { 
         if (resp != null) { 

          if (resp.IsValidUser == true) { 
           alert(resp.FullName); 
          } else { 
           alert("Invalid Username or Password"); 
          } 
         } 
        } 
       }); 
      } 
     }); 
    } 

</script> 

これは私の入力タイプを提出するためのコードです:

<input type="submit" value="Create" id="frmSubmit" /> 
+0

はい、利用可能で、form.valid()がtrueを返しています – user2833192

+0

私はあなたのコードを試してみました。あなたはこれをあなたの書類に入れましたか?あなたの関数を正しくフォーマットしましたか?親切に私の更新された答えを参照してください。 –

関連する問題