-1

我有一个这样的表单,它是由 jquery 插件中的脚本创建的。

elem.insertHtml('<form method="post" action="Home/ContactUs" enctype="mutlipart/form-data"><input type="file" name="file" id="fileUpload"></form></div>')

我必须上传一个文件,并将其保存在某个文件夹中。当我选择一个文件并提交表单时,在表单提交上调用 ContactUs 操作。Home 控制器有 ContactUs 操作。

public ActionResult ContactUs(HttpPostedFileBase file, ContactFormModel model)
{
    //other code
}

但是 HttpPostedFileBase 文件为空,我不知道为什么。你能帮我吗?

当我使用 Html.BeginForm 创建表单时,它可以正常工作,但是脚本存在问题。

4

4 回答 4

2

您可以使用“文件”方法上传文件并检索它们。在您的项目中创建一个文件夹,例如“FileUploads”,然后在其中上传文件。我给你一个链接,你可以在其中看到完整的实现:- 使用 Code First Method 中的 ID 从数据库上传、保存和检索图像

于 2014-05-15T16:55:28.030 回答
0

你能从

elem.insertHtml('<form method="post" action="Home/ContactUs" enctype="mutlipart/form-data"><input type="file" name="file" id="fileUpload"></form></div>')

elem.insertHtml('<form method="post" action="Home/ContactUs" enctype="multipart/form-data"><input type="file" name="file" id="fileUpload"></form></div>')

你能检查一下 Request.Files.Count 如果不是的话,它必须大于 0 请给我评论

 public ActionResult ContactUs(ContactFormModel model)
 {
    Request.Files[0].SaveAs(Server.MapPath(@"~\files\test.jpg"));
    return View();
 }
于 2013-08-28T12:17:06.503 回答
0

像这样创建 HTML 表单:

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="text" name="Subject"/>
    <input type="file" name="file" />
    <input type="submit" value="OK" />
}

还要确保在您的控制器中,方法具有如下属性[HttpPost]

[HttpPost]
public ActionResult ContactUs(HttpPostedFileBase file, ContactFormModel model)
{
    //other code
}
于 2013-08-28T11:55:23.743 回答
0

也许您的模型绑定在您的代码中不起作用。你的观点是强类型的吗?

试试这个答案。https://stackoverflow.com/a/8551621/2664142

于 2013-08-28T12:02:56.560 回答