MVCとWeb APIの新機能です。 私は作成したWeb APIにMailMessage
(System.Net.Mail)オブジェクトを投稿しようとしていますが、オブジェクトはAPIで空として受信されています。私は、以下のAPIを呼び出すためにReshSharpを使用していますことは、私のコードです:MVC Web APIのポストメソッドでMailMessageオブジェクトが空になっています
MailMessage myMail = new System.Net.Mail.MailMessage("[email protected]", "[email protected]");
myMail.Subject = "Test message from client";
myMail.SubjectEncoding = System.Text.Encoding.UTF8;
myMail.Body = "<b>Test Mail</b><br>using <b>HTML from client</b>.";
myMail.BodyEncoding = System.Text.Encoding.UTF8;
myMail.IsBodyHtml = true;
RestClient client = new RestClient("http://localhost:53014/api/email");
var request = new RestRequest("SendMailMessage", Method.POST);
var json = request.JsonSerializer.Serialize(myMail);
request.AddParameter("application/json; charset=utf-8", json, ParameterType.RequestBody);
request.RequestFormat = DataFormat.Json;
var res = client.Execute(request);
これは私のAPIメソッドである:
[HttpPost]
public void SendMailMessage([FromBody]MailMessage myEmail)
{
//Code to send email
}
これは私がAPI側で受信するものである:
私もこの方法で試しましたが、同じ出力:
request = new RestRequest("SendMailMessage", Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddBody(myMail);
res = client.Execute(request);
私はhまた、Newtonsoft.Jsonシリアライザでオブジェクトをシリアライズしようとしましたが、成功しませんでした。
私はここで何が欠けているのでしょうか?
アクションに送信する情報を保持するカスタムモデル/ viewmodel/payloadを作成し、アクションに提供されたプロパティを使用してアクションでメールメッセージを作成します。 MailMessageを送信しようとすると問題があります。 – Nkosi