Как запустить действие в контроллере, когда я выбираю файл из элемента управления входным файлом, найденным в форме редактирования
У меня есть код в форме редактирования, как это.
@using (Html.BeginForm("Bind", "Student", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<img id="sp" src="/Student/RetrieveImage/model.StudentID" alt="Photo" height=100 width=200 />
<input type="file" name="ImageData" id="ImageData" onchange="DI();"/>
}
И это в Student Controller
HttpPostedFileBase file;
public ActionResult Bind()
{
file = Request.Files["ImageData"];
file = Request.Files["ImageData"];
return RedirectToAction("StudentEdit");
}
Начальная форма находится в форме редактирования, которая является частичной формой. Что мне нужно, это запустить Bind Action, когда файл выбран из входного файла. Как я могу это сделать?
1 ответ
Вы работаете с формой (элемент html) для загрузки изображения (с глаголом HTTP POST), в вашем примере у вас есть два основных варианта для продолжения загрузки:
1-й вариант: создать отправку ввода внутри формы
@using (Html.BeginForm("Bind", "Student", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="ImageData" id="ImageData" onchange="DI();"/>
<input type="submit" name="submitbutton" value="Upload" />
}
2-й вариант: отправить форму с помощью javascript, в этом примере я использовал событие, которое вы создали в элементе файла:
@using (Html.BeginForm("Bind", "Student", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="ImageData" id="ImageData" onchange="this.form.submit();"/>
}