我正在尝试创建一个包含多个附件的电子邮件服务web api。只需要一个web api参数。但是,现在我有2个复杂的参数,web api不接受。请建议如何实现多个附件,并仅为web api使用一个复杂参数。
[HttpPost]
[ActionName("sendemail")]
public IHttpActionResult processEmail(EmailModel emailModel,
List<HttpPostedFileBase> attachments)
{
........
}
EmailModel
public class EmailModel
{
public string ToAddress { get; set; }
public string FromAddress { get; set; }
public string Body { get; set; }
}
并且,在电子邮件控制器中,我使用列表将附件附加到MailMessage对象。
foreach (HttpPostedFileBase attachment in attachments)
{
if (attachment != null)
{
string fileName = Path.GetFileName(attachment.FileName);
//create linked resource for embedding image
LinkedResource pic = new LinkedResource(attachment.InputStream, "image/jpg");
//add linked resource to appropriate view
htmlView.LinkedResources.Add(pic);
}
}
//add view
msg.AlternateViews.Add(htmlView);
答案 0 :(得分:1)
一种解决方案是接受您的电子邮件模型作为参数,并抓取HttpContext.Request.Files中的上传文件进行循环。假设您使用multipart / form-data
发布