2017-01-18 5 views
1
$(document).ready(function() {  
    $("#btn").click(function() {   
     var data = { 
      "Username": $("#name").val(), 
      "Password":$("#pswd").val() 
     } 
     $.ajax({ 
      url: "/loginform/logdetail", 
      data: JSON.stringify(data), 
      type: "post", 
      ContentType: "application/json;charset=utf-8",    
      datatype: "json", 
      success: function (response) { 
       event.preventDefault(); 
       var result = JSON.parse(response.d); 
       if (result.status == "success") { 
        window.location = "https://www.google.co.in"; 
        return false; 
       }  
      }, 
      error: function (result) { 
       alert("errormessage"); 
      } 
     }) 
    }); 
}); 

logdetail()メソッドでは、文字列値はnullです。文字列の値を取得するにはどうすればよいですか?AJAXからmvcのcodebehindに値を渡すには?文字列値がNULLになった

public JsonResult logdetail(string Username, string Password) 
{ 
    return Json(dbform.checkuser(Username,Password),JsonRequestBehavior.AllowGet);       
} 
+1

削除 'のContentType: "アプリケーション/ JSON;のcharset = UTF-8"、'(その実際 'contentType' - 小文字 - そのありません必要に応じて)と、 'データを使用: –

+0

がアクションをlogdetailするHttpPost属性を追加し、あなたがNEET JsonRequestBehavior.AllowGet OR 変更javascriptの呼び出し方法の種類をいけない。これはOPのとは何の関係もありません問題はあり、値は「ヌル」になります。 – levent

答えて

1

あなたのコード内のいくつかのミスがあります

特にこれらの2行あなたのAjaxコードになるだろう

contentType: "application/json; charset=utf-8",data: JSON.stringify({ userdataObj: data })

$(document).ready(function() {  
    $("#btn").click(function() {   
     var data = { 
      "Username": $("#name").val(), 
      "Password":$("#pswd").val() 
     } 
     $.ajax({ 
      url: "/loginform/logdetail", 
      data: JSON.stringify({ userdataObj: data }), 
      type: "post", 
      contentType: "application/json; charset=utf-8",   
      datatype: "json", 
      success: function (response) { 
       event.preventDefault(); 
       var result = JSON.parse(response.d); 
       if (result.status == "success") { 
        window.location = "https://www.google.co.in"; 
        return false; 
       }  
      }, 
      error: function (result) { 
       alert("errormessage"); 
      } 
     }) 
    }); 
}); 

今すぐユーザーを作成します以下の詳細を伴うデータクラス

public class User 
{ 
    public string Username { get; set; } 
    public string Password{ get; set; } 
} 
および変更は、コントローラコード下記

[HttpPost] 
public JsonResult logdetail(User userdataObj) 
{ 
    return Json(dbform.checkuser(userdataObj.Username,userdataObj.Password),JsonRequestBehavior.AllowGet);       
} 
+0

iamがテキストボックスにあるがcodebehindにusernameとpaswdを指定するとnull値が返される – babi

+0

コントローラアクションメソッドの上に '[HttpPost]'属性を置いてください。 – ViVi

1

まずはpreventDefault();を入れてください。成功関数の外に、そして、あなたがこの問題を解決するために2つのことを行うことができます

public JsonResult logdetail(User user) {..} 
+0

「を得る」とのデータ、'(文字列化ではないが) –

0

にJSONオブジェクト

public class User { 
public string Username { get; seet; } 
public string Password{ get; seet; } 
} 

変更アクションと同じサーバ側でクラスを作成します。

1)logdetail関数をlogdetail(User user)のように変更し、javascript ajax呼び出しのバージョンを使用して、Userクラスを2つのプロパティ(ユーザー名、パスワード)で作成します。

2)同じバージョンのコントローラ(logdetail(string Username, string Password))を使用する場合は、JavaScriptのajax呼び出しを変更する必要があります。

$(document).ready(function() {  
    $("#btn").click(function() { 
     var username = $("#name").val(); 
     var password = $("#pswd").val(); 
     $.ajax({ 
      url: "/loginform/logdetail", 
      data: { Username: username, Password: password } 
      type: "post", 
      ContentType: "application/json;charset=utf-8",    
      datatype: "json", 
      success: function (response) { 
       event.preventDefault(); 
       var result = JSON.parse(response.d); 
       if (result.status == "success") { 
        window.location = "https://www.google.co.in"; 
        return false; 
       }  
      }, 
      error: function (result) { 
       alert("errormessage"); 
      } 
     }) 
    }); 
}); 
関連する問題