Обновлять только частичное представление при нажатии кнопки отправки для загрузки файла
У меня есть частичное представление, которое позволяет пользователям отправлять файлы.
<form action="Attachments" method="post" enctype="multipart/form-data" target="_self">
<div>
<label style="text-align: left;">Add File:</label>
</div>
<div>
<input type="file" name="file" id="file" style="width: 275px;" />
</div>
<div style="text-align: right;">
<input type="submit" value="Add"/>
</div>
</form>
Это вызывает метод AttachmentsController для HTTPPost
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine("C:\\Attachments", fileName);
file.SaveAs(path);
return AddAttachment(fileName);
}
return RedirectToAction("Failed", "Attachments");
}
AddAttachment возвращает "return RedirectToAction("Index", "Attachments");" После того, как все это сделано, чтобы добавить вложение, обновляется весь экран, и я хочу, чтобы обновлялось только частичное представление для добавления вложения. Как я могу сделать это!?
1 ответ
Решение
Вы должны опубликовать свой файл по запросу ajax. И когда сервер возвращает ответ, обновите только необходимые части страницы.
Существует хороший плагин для формы, который позволяет асинхронно отправлять HTML-форму http://malsup.com/jquery/form/.
$(document).ready(function() {
$('#myForm1').ajaxForm();
});
или же
$("someButton").click(function(){
$('#myForm1').ajaxSubmit();
});