2017-06-21 8 views
3

開発中.net core application.i Postメソッドを使用して、私のコントローラにJavaスクリプト値を渡す必要があります。私は私のコントローラが [HttpPost]public string UploadData([FromBody] string imageValue) {return imageValue;}ですが、またimageValueはいつも、それは私のコード内の任意のミスnull.if返す問題を解決してください.netコアアプリケーションのポストメソッドを使用して、コントローラにjavaスクリプト値を渡す方法は?

data = {'imageValue':'some test'} 
    $.ajax({ 
     type: 'Post',   
     url: '/Home/UploadData',  
     dataType: 'json', 
     contentType: 'application/json', 
     data: data, 
     success: function (data) { 
     alert(data);  
     console.log('sample');      
     },  
     error: function(){ 
    } 
    }); 

の下にJavaスクリプトコードは使用しています。

+0

「ヌル」を返すものは?あなたの期待される行動は何ですか?また、いつ何が起こっていますか? – Shyju

+0

C#コントローラを投稿できますか?私は '[FromBody]'属性がないと思います。 – George

+0

サーバ側から正しいjsonオブジェクトを送りますか? –

答えて

4

ajax呼び出しを行うときには、javascriptオブジェクトを文字列化して送信する必要があります。 JSON.stringifyメソッドを使用すると、jsオブジェクトをそれに相当するJSON文字列に変換できます。今

var data = {'imageValue':'some test'} 
$.ajax({ 
    type: 'Post', 
    url: '/Home/UploadData', 
    dataType: 'json', 
    contentType: 'application/json', 
    data: JSON.stringify(data), 
    success: function (data) { 

     console.log('sample', data); 
    }, 
    error: function(){ 
    } 
}); 

(それはPOSTリクエストであるため)AJAX呼び出しがリクエストボディにデータを送信しているので、あなたがモデルバインダーは、それが必要知っているように、[FromBody]属性でHttpPostアクションメソッドのパラメータを飾るために必要がありますリクエスト本体からデータを読み込み、メソッドパラメータ(YourViewModel)オブジェクトにマッピングします。

public IActionResult UploadData([FromBody] YourViewModel d) 
{ 
    return Json(d); 
} 
+2

あなたの答えがうまく働いてくれてありがとう。 –

関連する問題