具有多个复杂参数的 web api

web api with multiple complex parameters

我正在尝试创建一个包含多个附件的电子邮件服务网站 api。 web api 只需要一个参数。但是,现在我有 2 个复杂的参数,web api 不接受。请建议我如何实现多个附件并仅使用一个复杂的网络参数 api.

[HttpPost]          
[ActionName("sendemail")]
public IHttpActionResult processEmail(EmailModel emailModel, 
List<HttpPostedFileBase> attachments)
{
 ........
}

电子邮件模型

 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);  

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

发帖