0
我想在不刷新所有页面的情况下上传文件。我知道上传不支持经典的Ajax表单。诀窍是使用一个经典的形式并对其进行渲染。如果ajaxform成功或失败,显示一条消息
这是我的观点:
@model .....
@using (Html.BeginForm("UploadImage", "Admin", FormMethod.Post, new { enctype = "multipart/form-data", id = "uploadform" }))
{
<div class="editor-label"> @Html.LabelFor(model => model.Image) </div>
<div class="editor-field"> <input type="file" name="file" id="file" /> </div>
<button type="submit">
<span>Upload</span>
</button>
}
这里是我的javascript:
$(document).ready(function() {
$('#uploadform').ajaxForm(function() {
alert("Thank you for your comment!");
});
});
这里是我的控制器:
[HttpPost]
public ActionResult UploadImage(HttpPostedFileBase file)
{
// Add code here...
return RedirectToAction("EditProject");
}
当我提交一份文件,在行动控制器接收信息。但是接下来什么都没发生。信息'谢谢你的评论!'从不显示。 如果上传成功失败,我想显示一条消息。
谢谢。
我们总是不得不返回一个带有ajax形式的Json对象吗?事实上,RedirectToAction(“EditProject”)是相同的页面。 – Bronzato
不应该只是引用页面,而不是:return View(); – Abbas
如何在视图中提醒返回的消息?我尝试$('#uploadform')。ajaxForm(function(message){alert(message);});这不起作用。 – Bronzato