在Ajax.BeginForm中上传文件后显示消息

时间:2014-02-27 11:32:11

标签: c# jquery asp.net-mvc

如何在发布表单后在jquery对话框中显示来自“return json(message)”操作的消息。我尝试使用以下内容,一切正常,但返回JsonResult触发Save / Open提示而不是使用Ajax.BeginForm调用OnSuccess。

部分视图:

   @using (Ajax.BeginForm("SaveDetails", "FileManage", new AjaxOptions { HttpMethod = "POST", OnSuccess = "OnFileUploadSuccess" }, new { enctype = "multipart/form-data", id = "myForm" }))
    {
         <input id="fuMyFile" type="file" name="files" />
         <input id="btnSubmit" type="submit" value="Submit" />
    }
<div id="dialogboxWin" style="display: none; padding: 8px 15px;">
    <div id="dvWindow"></div>
</div>

以下是jQuery代码:

  $('#btnSubmit').click(function () {

            $("#dvWindow").html("Are you sure to submit?");
            $("#dialogboxWin").dialog({
                modal: true,
                width: 400,
                autoOpen: true,
                title: 'Confirmation',
                buttons: {
                    "Yes": function () {
                        $(this).dialog("close");
                        $('#myForm).submit();
                    },
                    "No": function () {
                        $(this).dialog("close");
                    }
                }
            });

    return false;
});

function OnFileUploadSuccess(data) {
    alert(data.Message);
 }

控制器操作方法:

 [HttpPost]
public JsonResult SaveDetails(HttpPostedFileBase file)
{

        bool isSaved = File Saving & Some DB operations

        return Json(new
        {
            Result = isSaved
            Message = (isSaved)?"Saved Successfully." : "Failed"
        }, JsonRequestBehavior.AllowGet);  
}

1 个答案:

答案 0 :(得分:0)

当您提交表单时,您没有收到操作返回的消息。您可以将要显示的消息保存在某个会话变量中,并检查会话变量是否包含任何值,而不是文档就绪。页面并相应地显示消息。