2017-11-20 22 views
1

でコントローラに送信するデータ。角度/ MVC:私はバックエンドでの私の<em>ASP.NET MVC</em>コントローラに私の<em>角度4</em>フロントエンドから配列<strong>customparameters</strong>を送りたいバックエンド

私はNG-service.tsの配列を受け取り、このようなバックエンドに送信したいと思います:

setCustomParameters(customparameters) { 
    console.log(customparameters); //it's working 

    this.http.post('/api/customparameter', customparameters). //is that right? 
     subscribe(); 
    } 

しかし、これは私がしなければならないすべてである場合、私は、わかりません。

// POST: api/customparameter 
    [HttpPost] 
    public void Post([FromBody]string value) //how to change? 
    { 
    //doing something 
    } 

うまくいけば、誰かが私を助けるために時間と喜びを持っている:私はバックエンドで私のコントローラメソッドを記述する必要がどのように一方私は、グーグル経由で見つけることができません。転送ありがとう!

+0

カスタムパラメータに基づいてビューモデルを作成する必要があります。 'console.log(カスタムパラメータ);の出力を表示できますか? – Win

+0

あなたは '[Form ...]'属性をすべて試しましたか?または、手動でリクエストタイプをjson –

+0

に設定することができます。 'public void Post([FromBody] string value)'の文字列が正しくありません。 ** [FromBody] 'または' [FromForm] 'で結果を得ることに関係なく、** javascript **のサイドコードを変更するだけです。 'customparameter'に_specification_ _model_がある場合は、** backend **にクラスモデルを作成し、** string **をそれに置き換えることができます。 ** Array **の代わりに** Json **を**コントローラ**に渡すことをお勧めします。これは扱いやすいからです。 –

答えて

0
setCustomParameters(customparameters) { 
    console.log(customparameters); //it's working 

    // Converting to json 
    var json = JSON.parse(customparameters); 
    this.http.post('/api/customparameter', json). //is that right? 
     subscribe(); 
    } 

この時点で、JSONはオブジェクトに変換されます。プロパティは一致する必要があります。

クライアント側では、IdとNameと言うオブジェクトの配列を渡すと、バックエンドに同じモデルを作成する必要があります。

public class CustomModel { 
    public int Id {get;set;} 
    public string Name {get;set;} 
} 

とJSONの例のようになります役立ちます

[ 
    {"id" : 1, "name": "foo"}, 
    {"id" : 2, "name" : "bar"} 
] 

希望。

関連する問題

 関連する問題