Когда я пытаюсь загрузить файл в ASP.NET MVC, он показывает как ноль - PullRequest
0 голосов
/ 25 августа 2010

По какой-то причине параметр OriginalLocation всегда равен null в следующем коде. Что я делаю не так?

Контроллер:

 [HttpPost]
 public ActionResult File(HttpPostedFileBase OriginalLocation, FileModel model)
 {
     byte[] binaryData = null;
     if (OriginalLocation != null && OriginalLocation.ContentLength > 0)
     {
         binaryData = new byte[OriginalLocation.ContentLength];
         OriginalLocation.InputStream.Read(binaryData, 0,
                          OriginalLocation.ContentLength);
         if (model.UploadFile(OriginalLocation))
         {
             return RedirectToAction("Profile", "Account");
         }
     }
 return View();
 }

Вид:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/MasterPage.Master" Inherits="System.Web.Mvc.ViewPage<NISE.Web.TestForum.Models.File.FileModel>" %>

<asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server">
Find upload
</asp:Content>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">

<% using (Html.BeginForm("File", "File", FormMethod.Post, new { enctype = "multipart/form-data" }))
   { %> 
<%--<form enctype="multipart/form-data" method="post" action="/File/File">--%>

      <input type="file" name="OriginalLocation" id="OriginalLocation"  />

    <input type="submit" value="Upload" />

<%--</form>--%>
<%} %>

</asp:Content>

Модель:

public bool UploadFile(HttpPostedFileBase OriginalLocation)
    {
        if (OriginalLocation != null)
        {
            var filename = Path.GetFileName(OriginalLocation.FileName);
            OriginalLocation.SaveAs(@"C:\" + filename);
            return true;
        }
        return false;
    }

1 Ответ

0 голосов
/ 26 августа 2010

Я думаю, вам просто нужно удалить параметр модели FileModel из вашего метода Action. Ничего не передается ему, и поэтому он облажает привязку модели (если в представлении больше нет кода, который вы удалили из своего поста).

...