For some reason the paramater OriginalLocation
is always null
in the following code. What am I doing wrong?
Controller:
[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();
}
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>
Model:
public bool UploadFile(HttpPostedFileBase OriginalLocation)
{
if (OriginalLocation != null)
{
var filename = Path.GetFileName(OriginalLocation.FileName);
OriginalLocation.SaveAs(@"C:\" + filename);
return true;
}
return false;
}