2017-11-14 4 views
-7

なぜ成功したのですか?JQuery Ajax、なぜ成功したのですか?なぜエラーが出るのですか?

$('#ck').click(function() { 
    var StudentData = [{ 
    'Name': 'Ali', 
    'Age': 27 
    }, { 
    'Name': 'Sam', 
    'Age': 32 
    }]; 

    $.ajax({ 
    url: "/Home/StudentInfo", 
    data: JSON.stringify(StudentData), 
    ... 
    success: function(response) { 
     alert(response[0].Name); 
    }, 
    error: function() { 
     alert("error"); 
    }, 
    }); 
}); 
+2

あなたの質問は混乱です。 http://www.stackoverflow.com/tourを見て、時間をかけて質問を書き直してください。 – Nepho

+2

どのようなエラーがありますか?あなたは何について話していますか?ここからあなたの画面が見えないことを理解してください。 *問題を説明してください。* – David

+0

alert(response [0] .Name); //ここにエラーがありますが、どうすれば値を取得できますか? –

答えて

0

上記過度に長いコメントスレッドをもとに、あなたはこのサーバー側のコードを持っていると主張する:

public JsonResult StudentInfo(List<object> StudentData) 
{ 
    return Json(StudentData); 
} 

だから、あなたはあなたのクライアント側のコードにList<object>を返します。そして、あなたはそのリスト内の要素のプロパティにアクセスしようとするあなたのクライアント側のコードに:

success: function (response) { 
    alert(response[0].Name); 
} 

まあ、入れて、単にobject doesn't contain a property called Nameです。それは決してありません、それはおそらく決してありません。したがって、が存在しないプロパティにアクセスすることはできません。したがって、JavaScriptではundefinedです。

のように見えますが、オブジェクトのクラスを定義することを意味します。このような単純なもの:

public class Student 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

次に、あなたがあなたのアクションメソッドでそのクラスを使用することができますStudentので

public JsonResult StudentInfo(List<Student> StudentData) 
{ 
    return Json(StudentData); 
} 

は、あなたがそのプロパティを使用することができ、Nameというプロパティを持っていませんクライアント側のコード

+0

おかげで新たなんだそんなにそれが、これは動作しませ****仕事 –

+0

だ 公共化するJsonResult StudentInfo(一覧 StudentData) { リターンJSON(StudentData)。 } ****この作業 公共化するJsonResult StudentInfo(リスト StudentData) {リターンJSON(StudentData)。 } ****ありがとうございます –

関連する問題