Я использовал код, указанный в этой ссылке для обработки загрузки:
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;
namespace SiteVCM.Controllers
{
открытый класс FileDescription
{
публичная строка Name {get; задавать; }
публичная строка 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 появляется, как и должно, но когда я нажимаю кнопку «Загрузить файл», ничего не происходит.
Представление, в котором находится этот код, принадлежит другому контроллеру, тогда как функция, в которой определена моя Upload-функция.
Пожалуйста, помогите мне, я искал несколько часов, чтобы исправить это, и я бесился.
Заранее спасибо !!