如果ajaxform成功或失败,则显示消息

时间:2011-11-18 10:32:21

标签: asp.net-mvc jquery

我想在不刷新所有页面的情况下上传文件。我知道上传不支持经典的ajax表单。诀窍是使用经典形式并对其进行调整。

以下是我的观点:

@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");
    }

当我提交文件时,控制器中的操作会收到信息。但接下来什么也没发生。消息“谢谢你的评论!”永远不会显示。 如果上传成功失败,我想显示一条消息。

感谢。

1 个答案:

答案 0 :(得分:0)

Controller中的UploadImage方法重定向到另一个操作。您应该返回带有要显示的消息的JSON。

public ActionResult UploadImage(HttpPostedFileBase file)
{
   //processing code...

   return Json(new { message = "Thank you..." }); 
} 

然后在View中只提醒返回的消息。