Request.File 是空 MVC 4

Request.File is Empty MVC 4

![在此处输入图片描述]我正在创建一个操作来发送带有富文本消息和附件的电子邮件。我需要在发送邮件之前将附件文件保存到光盘。

我的工作环境:

我的获取操作方法:

public ActionResult CreateCommunication()
{
  .... 
  return View(new EmailMessage()); 
}

我的表格:

<form role="form" method="POST" action="MyEmail/CreateCommunication" enctype="multipart/form-data">
  ...
  ...
</form>

我的Post操作方法:

[HttpPost]
public ActionResult CreateCommunication(FormCollection formCollection)
{
  var to = formCollection["To"];
  var from = formCollection["From"];
  var message = formCollection["Message"]

  var file = Request.Files[0];
  ...
  ...
}

我做错了什么?有什么线索吗?

我也试过了

public ActionResult CreateCommunication(FormCollection formCollection, HttpPostedFileBase fileinput)
{
}

for post 操作方法,其中 fileinput 在我的表单中是 <input type="file" name="fileinput" id="fileinput"/> 但在方法中 fileinput 是 null

请在下面找到具有正确 Content-Type 的 RequestHeader,即:

application/x-www-form-urlencoded; charset=UTF-8

终于找到解决办法了。由于表单位于 bootstrap 模态 window 中,因此它使用 Ajax 当我引用默认提交处理程序时提交处理程序工作正常。

请记住永远不要使用 ajax 提交文件上传器。