具有多个复杂参数的web api

时间:2018-01-26 01:52:48

标签: rest asp.net-web-api mailmessage

我正在尝试创建一个包含多个附件的电子邮件服务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);  

1 个答案:

答案 0 :(得分:1)

一种解决方案是接受您的电子邮件模型作为参数,并抓取HttpContext.Request.Files中的上传文件进行循环。假设您使用multipart / form-data

发布
相关问题