联系表单中的FileUpload MVC在电子邮件

时间:2018-06-06 21:38:40

标签: asp.net-mvc file-upload

我的ASP.NET MVC应用程序中有一个联系表单,效果非常好。我使用带有sendgrid的SMTPClient。

我决定尝试将文件上传到我的联系表单,然后我就可以选择一张图片并且电子邮件发送正常。唯一的问题是,当我发送电子邮件(对我自己,当然)时,根本没有文件附件。此外,在我的控制器中,我添加了一个检查以查看对象是否为空 - 它是。我不知道为什么。有人能帮忙吗?

我的观点:

@using (@Html.BeginForm("Contact", "Views", FormMethod.Post, new { @class = "form-signin", @action = "Contact", @method = "post", enctype = "multipart/form-data" }))
{

  @Html.AntiForgeryToken()
  HtmlHelper.UnobtrusiveJavaScriptEnabled = true;

  // other fields


 @Html.TextBoxFor(m => m.fileUploader, new { type = "file" })
}

视图模型:

public HttpPostedFileBase fileUploader { get; set; }

控制器:

     [HttpPost]
        public ActionResult Index(ContactFormViewModel model,  HttpPostedFileBase fileUploader)
        {
            if (ModelState.IsValid)
            {
                MailMessage msz = new MailMessage();
                msz.From = new MailAddress(model.InputEmail);

                msz.To.Add("myemail@email.com");
                msz.Subject = "subject";
                msz.Body = "body stuff";
                msz.IsBodyHtml = true;

                if (fileUploader != null)  //THIS IS NULL??

                {

                    string fileName = Path.GetFileName(fileUploader.FileName);

                    msz.Attachments.Add(new Attachment(fileUploader.InputStream, fileName));

                }


                //SMPTCLient stuff

                ModelState.Clear();

                return View("Success");
            }

在我看来,好像所选的文件没有被映射,但我不知道如何或为什么。正如我在代码中所说,我在控制器上放了一个断点,fileuploader为空。 其他一切都很好,模型中的其他字段都有价值,但不是这个。 当我收到我的电子邮件时,所有字段都在那里,但没有附加到电子邮件。

我错过了什么吗?

0 个答案:

没有答案