我对MVC和Web API很陌生。 我想发布一个MailMessage
(System.Net.Mail)对象到我创建的web api,但该对象在API处被接收为空。我使用ReshSharp调用下面的API是我的代码:在MVC Web API post方法中收到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序列化器来序列化对象,但没有成功 var json = JsonConvert.SerializeObject(myMail);
任何人都可以建议我在这里错过了什么?
创建自定义模型/视图模型/有效内容以保存要发送到动作的信息,然后使用提供给动作的属性在动作中构造邮件消息。尝试发送MailMessage是有问题的。 – Nkosi