我已使用此链接中提供的代码进行上传处理:
http://towardsnext.wordpress.com/2009/04/17/file-upload-in-aspnet-mvc/
但这不适合我。 (当我在运行网站时单击“上传文件”按钮时,没有任何反应。) 我已经像这样编辑了我的观点
<script type="text/javascript">
$(function () {
$("#dialog").dialog({bgiframe: true, height: 140, modal: true, autoOpen: false, resizable: false}) });
</script>
以及
<div id="dialog" title="Upload files">
<% using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data", id = item.OrderId })){%>
<p><input type="file" id="fileUpload" name="fileUpload" size="23"/> </p>
<p><input type="submit" value="Upload file" /></p>
<% } %>
</div>
<a href="#" onclick="jQuery('#dialog').dialog('open'); return false">Upload File</a>
我的上传功能(在UploadController中定义)如下所示:
using System;
使用System.Collections.Generic; 使用System.Linq; 使用System.Web; 使用System.Web.Mvc; 使用System.Web.Mvc.Ajax; 使用System.IO; 使用SiteVCM.Models;
命名空间SiteVCM.Controllers { 公共类FileDescription { public string Name {get;组; } public string WebPath {get;组; } public long Size {get;组; } public DateTime DateCreated {get;组; } }
public class UploadController : Controller
{
StoreEntities storeDB = new StoreEntities();
//
// GET: /Upload/
FileRepository fileRepository = new FileRepository();
//public ActionResult Index()
//{
// return View(fileRepository.GetAllFileDescription());
//}
public ActionResult Upload(int id)
{
foreach (string inputTagName in Request.Files)
{
HttpPostedFileBase file = Request.Files[inputTagName];
if (file.ContentLength > 0)
{
string filePath = Path.Combine(HttpContext.Server.MapPath("../Samples")
, Path.GetFileName(file.FileName));
file.SaveAs(filePath);
var order = storeDB.Orders.Single(c => c.OrderId == id);
order.Url = filePath;
storeDB.SaveChanges();
}
}
return RedirectToAction("Index", "Status", new { id = 0 });
}
}
和FileRepository.cs文件是相同的,除了命名空间和输入文件的位置。
JQuery对话框会弹出,但是当我点击“上传文件”按钮时没有任何反应。
此代码所在的视图属于antoher控制器,然后定义了我的上传功能。
请帮助我,我一直在寻找解决这个问题的时间,我吓坏了我。
提前致谢!!
答案 0 :(得分:0)
这肯定有用
<% using (Html.BeginForm("Upload", "Upload", FormMethod.Post,
new { enctype = "multipart/form-data" })){%>
<input type="file" id="fileUpload" name="fileUpload"/>
<input type="submit" value="Upload file" />
<% } %>
public ActionResult Upload(HttpPostedFileBase fileUpload)
{
//fileUpload == posted file
}