我有一个表格,它是通过jquery插件中的脚本创建的。
elem.insertHtml('<form method="post" action="Home/ContactUs" enctype="mutlipart/form-data"><input type="file" name="file" id="fileUpload"></form></div>')
我必须上传文件,并将其保存在某个文件夹中。当我选择一个文件,并提交表格时,在表单上调用联系人的行动。来自家庭控制器的联系人行动。
public ActionResult ContactUs(HttpPostedFileBase file, ContactFormModel model)
{
//other code
}
但是HttpPostedFileBase文件是null,我没有任何想法。你能帮帮我吗?
当我使用Html.BeginForm创建表单时,它可以正常工作,但脚本存在问题。
答案 0 :(得分:1)
您可以使用“文件”方法上传文件并检索它们。在项目中创建一个像'FileUploads'的文件夹,然后在那里上传文件。我给你一个链接,你可以看到完整的实现: - Upload,Save and Retrieve Image from database by using their Id in Code First Method
答案 1 :(得分: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" />
}
另外请确保在Controller中,Method有一个属性[HttpPost]
,如下所示:
[HttpPost]
public ActionResult ContactUs(HttpPostedFileBase file, ContactFormModel model)
{
//other code
}
答案 2 :(得分:0)
也许您的模型绑定在您的代码中无效。你的观点是强烈打字的吗?
答案 3 :(得分: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();
}