Как написать «Html.BeginForm» в Razor
Если я напишу вот так:
form action = “Images” method = “post” enctype = “multipart / form-data”
оно работает.
- Событие jquery toggle возится со значением флажка
- Компонент формы должен иметь UIForm в своей родословной. Предложение: заключить необходимые компоненты в
- Как предотвратить закрытие приложения при закрытии формы запуска?
- jqGrid - Как изменить конструкцию form_editing?
- Можете ли вы задать два поля формы для соответствия HTML5?
Но в Razor с «@» это не работает. Я допустил ошибки?
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" })) { @Html.ValidationSummary(true) }
Мой controller выглядит так:
[AcceptVerbs(HttpVerbs.Post)] public ActionResult Upload() { foreach (string file in Request.Files) { var uploadedFile = Request.Files[file]; uploadedFile.SaveAs(Server.MapPath("~/content/pics") + Path.GetFileName(uploadedFile.FileName)); } return RedirectToAction ("Upload"); }
- Понимание механизмов компоновки форм в Qt
- как распространять или передавать несколько значений в r
- Предотrotation повторной отправки формы
- jquery / js - Как выбрать родительскую форму, на основе которой нажата кнопка отправки?
- Nodejs POST запрос multipart / form-data
- Как mime-тип загруженного файла определяется браузером?
- Использование атрибута «требуется» HTML5 для группы флажков?
- изменение языка сообщения об ошибке в обязательном поле в форме контакта html5
Следующий код работает нормально:
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" })) { @Html.ValidationSummary(true) }
и генерирует, как ожидалось:
С другой стороны, если вы пишете этот код в контексте другой конструкции на стороне сервера, такой как if
или foreach
вы должны удалить @
перед using
. Например:
@if (SomeCondition) { using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" })) { @Html.ValidationSummary(true) } }
Что касается вашего кода на стороне сервера, вот как это сделать :
[HttpPost] public ActionResult Upload(HttpPostedFileBase file) { if (file != null && file.ContentLength > 0) { var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(Server.MapPath("~/content/pics"), fileName); file.SaveAs(path); } return RedirectToAction("Upload"); }