Логика загрузки файлов в View и Controller (MVC3) - PullRequest
0 голосов
/ 18 ноября 2011

Я хочу реализовать логику загрузки файлов в MVC. Мое представление (cshtml) будет содержать что-то вроде этого.

<div id="dialog" title="Upload files">
               <p><input type="file" id="fileUpload" name="fileUpload" /> </p>
        <p><input type="submit" value="Upload file" /></p>
    <% } %>
</div>  

И у моего контроллера будет логика для сохранения файла.

  [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult FileUpload(HttpPostedFileBase uploadFile)
    {
        if (uploadFile.ContentLength > 0)
        {
            string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"),
                                           Path.GetFileName(uploadFile.FileName));
            uploadFile.SaveAs(filePath);
        }
        return View();
    }

Как связать событие click для запуска этого контроллера?Это был просто пример кода, который я получил в сети. Дайте мне знать, если это не так.

Спасибо, Адарш

1 Ответ

0 голосов
/ 18 ноября 2011

Вы запустите это действие контроллера, отправив форму, точно так же, как работает парадигма MVC.

В представлении вы должны поместить этот HTML-код в форму, подобную следующей:

@using (Html.BeginForm("FileUpload", "<ControllerNameHere>", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
        <p><input type="file" id="fileUpload" name="fileUpload" /> </p>
        <p><input type="submit" value="Upload file" /></p>
}

Это активирует ваш контроллер. Я не знаю, как работает файл в качестве параметра. Я обычно использую свойство Request.Files в моем контроллере.

...