2017-06-05 28 views
-2

我在我的用戶可以更改自己的密碼,到一個新的,需要2個變量的方法未定義的變量,一個是新的密碼和其他的東西password.The重複是當我調用方法時,它返回字符串「未定義」,並使用該字符串作爲新密碼,將其保存在數據庫。 有人能告訴我我做錯了什麼嗎? 控制器:從阿賈克斯發送到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); 
    } 

腳本:

<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非常感謝你幫助我的愚蠢嘿嘿 – Wood

+0

哈哈沒問題 – crazyglasses

回答

0

我認爲你正在使用不正確的ID來獲得密碼字段的值。

而不是同時發送密碼編寫更好的辦法是,在客戶端可以只比較兩者的密碼值,如果它們都是相同的然後解析這些值與其它明智要求用戶輸入相同的密碼代碼方面。

0

這將是更好地送在data參數的數據,而你正在使用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"; 
     } 
    } 
}); 

這是用於使用POST 方法。如果您想使用GET方法,則可以通過query string傳遞數據。