2010-11-30 2 views
0

я использовал код, предоставленный в этой ссылке для загрузки-обработки:Как сделать загрузку в asp mvc 2?

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> 

Мой Upload-функции (определенный в UploadController) выглядит следующим образом:

using System; 

использованием System.Collections.Generic; с использованием System.Linq; с использованием System.Web; с использованием System.Web.Mvc; с использованием System.Web.Mvc.Ajax; с использованием System.IO; с использованием SiteVCM.Models;

пространства имен SiteVCM.Controllers { общественного класса FileDescription { общественная строка Name {получить; задавать; } public string WebPath {get; задавать; } public long Размер {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

Есть ли какие-либо ошибки JavaScript? (Вы проверили через Firebug?) – LiamB 2010-11-30 20:43:11

+0

* Не работает * может означать много вещей, таких как: получение исключения (в этом случае вы предоставляете детали исключения), не ведя себя так, как ожидалось (в этом случае вы объясняете, что такое ожидаемое и фактическое результат), ваш компьютер падает с синим экраном смерти, яблоки начинают падать с неба, ... – 2010-12-01 07:34:44

ответ

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 
} 
Смежные вопросы