2017-01-24 7 views
1
// mycontroller 
[HttpPost] 
public IEnumerable<Obj1> Post([FromBody]Obj2 val, string str1, string str2) 
{ 
Model1 = new function1(); 
Obj1[] res; 

res= client.function1(val, str1, str2); 
return res; 
} 

//myscript 
send1.click(function (e) { 
$.ajax({ 
url: action, 
datetype: "JSON", 
data: { 
    'val': JSON.stringify($(this).serialize()), 
}, 
cache: false, 
type: "POST", 
beforeSend: function (data) {} 
) 
.done() 
.fail() 
.always() 
}) 

コントローラ側のオブジェクトが表示されません.JSS1の一部のエラーが表示されます。戻り値resは空のオブジェクトですが、これは問題ありませんが、オブジェクトと文字列はコントローラで受け取られていないajaxからポストされます。

答えて

0

Obj2 valをオブジェクトに解析するには、Obj2を理解するModelBinderがMVCプロジェクトに必要です。 JSON文字列を魔法のようにあらゆる種類のClassに解釈することはできません。

あなたは

Post([FromBody]string val, string str1, string str2) 

とobj2が

Post([FromBody]Obj2 val, string str1, string str2) 

を置き換えることによって、これをテストして、JSON文字列を取得するかどうかを確認することができますか?それが次のステップを実行する場合、文字列をObj2のインスタンスに変換することです。あなたはこれのコードを書く必要があります。それは魔法のように起こることはありません。

そのコードを配置するための標準的な場所は、あなたのGlolbal.asax.csApplicationStart

ModelBinderとワイヤーそれをしています
関連する問題