Reputation: 4691
I have to update my contact form, to allow attachments.
My reading indicates I need to add a new property to my model, of type HttpPostedFileBase
So, I did the following
@model Ui.Models.Email
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
@Html.TextBoxFor(a => a.Attachment, new { @type = "file" })
}
And my model
public class Email
{
[Display(Name = "Attach away my assuming chum")]
public HttpPostedFileBase Attachment { get; set; }
}
The problem I'm getting is the property is always null!
Usually, when it's a string, int or List, the binding works, but I have no idea how to get it to bind to my model.
What am I doing wrong?
Upvotes: 0
Views: 2359
Reputation: 2840
To allow your form to upload files, it should have the enctype="multipart/form-data"
attribute.
You can do it like so:
@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new{ enctype="multipart/form-data" }))
{
@Html.ValidationSummary(true)
@Html.TextBoxFor(a => a.Attachment, new { @type = "file" })
}
Upvotes: 3