2017-08-18 40 views
0

ajaxからコントローラに単一の複合型を送信できますが、リストを渡すことはできません。常にnullが返されます。 ***成功した合格を示すためにコードが更新されました。あなたのAJAX呼び出しに基づいてASP.Net ajaxからコントローラへの投稿リスト

public class EntityAliasTest 
{ 
    public int IDTEMP1 { get; set; } 
    public string NAMETEMP1 { get; set; } 
} 
[HttpPost] 
public IActionResult SaveEntityAliases([FromBody] 
List<EntityAliasTest> postData) 
{ 
    var es = ModelState.SerializeErrors(); 
    return Json(new[] { postData, es }); 
} 
var aliasList = new Array(); 

var o = { IDTEMP1 : 0, NAMETEMP1: 'test 0' }; 
aliasList.push(o); 

o = { IDTEMP1 : 1, NAMETEMP1: 'test 1' }; 
aliasList.push(o); 

o = { IDTEMP1 : 2, NAMETEMP1: 'test 2' }; 
aliasList.push(o); 

var postData= JSON.stringify(aliasList); 

$.ajax({ 
    url: "DataAdministration/EntityAlias/SaveEntityAliases", 
    type: "POST", 
    cache: false, 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    data: postData, 
}).done(function (data) { 
+0

一見したところでは、コードは正常に見えます。コンソールにエラーがないかチェックしたり、エラー処理コードを追加してリクエストからの応答を確認しましたか? –

+0

正常に渡すことを示すためにコードを更新しました。誰も助けてくれてありがとう! –

答えて

0

、あなたはリストが含まれている単一のオブジェクトを送信しています。したがって、あなたのコントローラは、そのような構造のオブジェクトも期待します。

代わりに、 var data = {postData:aliasList}; var data2send = JSON.stringify(data);

試すことができます: var data2send = JSON.stringify(aliasList);

オンラインjsonバリデータを使用して、有効なjsonデータを渡すかどうかを確認できます。あなたは下のリンクを参照することができます。

https://jsonlint.com/

はそれに役立つことを願っています。

+0

JSONを更新して検証しましたが、それでも問題はありませんでしたが、引き続きIEnumerable postDataがコントローラにありますか?何かご意見は? –

+0

いくつかの追加変更を加えましたが、これは私を正しい場所にしました。ありがとう!私はチェックマークを付けましたが、約15枚の小切手が必要ですか? –

+0

あなたはそれをやったと聞いて良いです。 –

関連する問題