Asp.net MVC-fileupload image value показывает нулевые значения в методе httppost
У меня есть составные формы, в которые я мог бы загрузить изображение и другие значения формы.В то время как значения формы по праву принимаются через свойство FormCollection, в то время как файл загрузки всегда показывает нулевое значение в свойстве HttpPostedFileBase.Я просматриваю форумы, но не могу понять, где что пошло не так. Вот что я сделал, пожалуйста, пройдите через это и скажите, что пошло не так.Спасибо, друг.
Что я уже пробовал:
cshtml:
@использование (в формате HTML.Бигинформ("Создать", "StaffRegistration", FormMethod.Post, new { enctype = " multipart/form-data" }))
{
&ЛТ;входной тип="файл" название="StaffImage" идентификатор="StaffImage" /&ГТ;
}
Контроллер:
[AcceptVerbs(HttpVerbs. Post)]
public ActionResult Create(коллекция FormCollection, файл HttpPostedFileBase)
{
пробовать
{
// TODO: добавьте сюда логику вставки
StaffRegistration StaffReg = новая регистрация персонала();
Стаффрег.Имя = коллекция["имя"].Метод toString();
StaffReg. LastName = коллекция ["фамилия"].Метод toString();
Стаффрег.DateOfBirth = DateTime.Parse(collection ["DateofBirth"]);
StaffReg. Nationality = коллекция ["национальность"].Метод toString();
StaffReg. Gender = коллекция ["гендер"].Метод toString();
StaffReg. MaritalStatus = коллекция ["MaritalStatus"].Метод toString();
Стаффрег.Группа крови = коллекция["группа крови"].Метод toString();
StaffReg.StaffName = коллекция["StaffName"].Метод toString();
StaffReg.Отчество = коллекция["отчество"].Метод toString();
HttpPostedFileBase file = Request.Файлы ["StaffImage"];
StaffRegistrationBusSer StaffRegBusSer = новый StaffRegistrationBusSer();
StaffRegBusSer.AddStaffReg(StaffReg,файл);
return RedirectToAction ("индекс");
}
Уровень данных:
public bool AddStaffRegistraiton(StaffRegistration staffRegistration, HttpPostedFileBase File)
{
регистрация персонала.StaffImage = ConvertToByte(Файл);
используя(sqlconnection с Кон = новое sqlconnection(connectionString и))
{
Объект sqlparameter paramImage = новый объект sqlparameter();
парамимаж.ParameterName = " @StaffImage";
парамимаж.Значение = staffRegistration.StaffImage;
УМК.Параметры.Добавить(paramImage);
Кон. Открыт();
УМК.Метод executenonquery();
}
вернуть true;
}
Функция ConvertToByte:
public byte[] ConvertToByte (HttpPostedFileBase Image)
{
byte[] imagebyte = null;
BinaryReader Reader = новый BinaryReader(изображение.Входной поток);
imagebyte = читатель.ReadBytes((инт)изображения.ContentLength);
вернуться imagebyte;
}