2017-06-05 11 views
-2

私は、自分のパスワードを変更したり、新しい変数に2つの変数、1つは新しいパスワード、もう1つはパスワードの繰り返しを必要とする方法を持っています。そのメソッドを呼び出すと、文字列 "undefined"が返され、その文字列が新しいパスワードとして使用され、dbに保存されます。 誰かが私が間違っていることを教えてもらえますか? コントローラ:AjaxからMVCコントローラに送信される未定義の変数

[HttpPost] 
    public JsonResult ChangePwdEnt(string pwd, string repeatpwd) 
    { 
     if (pwd == null || repeatpwd == null) 
     { 
      ViewBag.Error = "Insira os campos obrigatórios"; 
     } 
     else 
     { 
      if (pwd == repeatpwd) 
      { 
       changePwd_Entidades(Session["ID"].ToString(),pwd); 
       return Json(true,JsonRequestBehavior.DenyGet); 
      } 
      else 
      { 
       ViewBag.Error = "As palavras chave precisam de ser iguais"; 
      } 
     } 

     return Json(false, JsonRequestBehavior.DenyGet); 
    } 

スクリプト:あなたがPOST方法

var data = JSON.stringify({ 
      'pwd': $('#Info_pwd').val(), 
      'repeatpwd':$('#Info_repeatpwd').val() 
      }); 

$.ajax({ 
    type: 'POST', 
    contentType: 'application/json', 
    url: '@Url.Action("ChangePwdEnt", "Home"), 
    data: data, 
    error: function (e) { 
     console.log(e); 
    }, 


    success: function (Changed) { 
     if (Changed) { 
      window.location = "Entidades"; 
     } else if (!Changed) { 
      window.location = "LoginEntidades"; 
     } 
    } 
}); 

これを使用している間、dataパラメータにデータを送信する方が良いだろう

<script> 

$('.alt-btn').on('click', function() { 



    $.ajax({ 
     type: 'POST', 
     contentType: 'application/json', 
     url: '@Url.Action("ChangePwdEnt", "Home")?pwd=' + 
     $('#Info_pwd').val() + '&repeatpwd=' + $('#Info_repeatpwd').val(), 

     error: function (e) { 
      console.log(e); 
     }, 


     success: function (Changed) { 
      if (Changed) { 
       window.location = "Entidades"; 
      } else if (!Changed) { 
       window.location = "LoginEntidades"; 
      } 
     } 
    }); 
}); 

+0

使用しているHTMLフィールドのIDは正しいですか? – crazyglasses

+1

@crazyglasses神私は盲目だ...間違ったモデルを使用していた:c私の愚かさheheで私を助けてくれてありがとう – Wood

+0

母は問題なし – crazyglasses

答えて

0

パスワードフィールドの値を取得するために間違ったIDを使用していると思います。

代わりに両方のパスワードをクライアントサイドで比較し、両方が同じであればそれらの値を解析して他のコード側に同じパスワードを入力してもらうようにしてください。

0

POSTを使用する 方法。 GETメソッドを使用する場合は、query stringにデータを渡すと問題ありません。

関連する問題