2017-07-28 16 views
0

Webサイトの電子メールとページを追跡する必要があります。私たちはこのためにWebAPIを使用したいと思いますが、私は非常に新しく、見つかった例はそれほど厳しくありませんでした。私もSaveEmail呼び出さHttpPostメソッドを持っているWebAPIのを作成しましたコントローラからWebAPIへの値の受け渡し

public class EmailTrackingController : Controller 
{ 
    [OutputCache(NoStore = true , Duration = 0)] 
    [HttpPost] 
    public ActionResult GetPixel(string email, Guid emailID) { 

     var client = new HttpClient(); 
     var endpoint = "http://localhost:2640/api/EmailTracker/SaveEmail"; --path to my API 
     var response = await client.PostAsync(endpoint, null); --this does not work 

     const string clearGif1X1 = "R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="; 
     return new FileContentResult(Convert.FromBase64String(clearGif1X1) , "image/gif"); 
    } 
} 

::私は以下のようなコードでEmailTrackerContollerを持って

:ここに私の問題であり、上の質問の

[HttpPost] 
public HttpResponseMessage SaveEmail([FromBody]string value) { --How do I get the Email and Guid I need from here? 

    var a = new DL.EmailTracking(); 
    a.Insert("<email>" , Guid.NewGuid()); 

    return Request.CreateResponse(HttpStatusCode.Accepted , ""); 
} 

カップルこれは

  • どのようにコントローラからWebApiに値を渡しますか?
  • 便利なリンクがあれば、それに従うのは簡単です。
+2

コントローラーからwebApiにデータを渡すとどういう意味ですか?コントローラは、あなたのアプリケーションロジックへのあなたのAPIのエントリポイントです – acostela

+0

私は少し混乱しています。コントローラWebAPIがあるので、ビューからコントローラに値を送信します。WebAPI –

+0

コントローラからこのwebapiを呼び出す必要があるWebサイトがあります。 webApiにはコントローラーもあります。私はwebapiに値を渡してデータベース挿入を行うことができます。私はちょうど正しくどのようにwebapiを電子メールとIDで渡すと、webapi側でそれを取得する方法を知りません。それは理にかなっています、申し訳ありませんが、まだまだMVCとWebapiの新製品です。 –

答えて

1

PostAsyncの2番目のパラメータは、コールの内容です。 オブジェクトを必要な値を含むJSONとしてシリアル化し、コンテンツとして追加します。

var obj = new { Email = "[email protected]" }; 
HttpStringContent msg = new HttpStringContent(JsonConvert.SerializeObject(obj)); 
var response = await client.PostAsync(endpoint, msg); 

目的のプロパティを受信するように受信方法を変更します。私はメソッドのパラメータとしてクラスを使用したいと思いますが、[FromBody]と同様にすべてのプロパティを使用することができます。

public HttpResponseMessage SaveEmail(EmailSave model) 
+0

ありがとう、それは私の問題を解決! –

関連する問題