0

我正在使用 ASP.NET MVC3,我想在我的项目中使用上传器功能。

我点击了这个链接,是的,它确实有效: 文件上传 ASP.NET MVC 3.0

但我确实想要一种不同的方法。

我需要从 Jquery 调用上传器,在 jQuery 中它将调用一个控制器,该控制器将返回 true 或 false 的结果:

HTML 代码:

<div id="dialogUpload" title="Upload file"  style="display:none;">
{
   <input type="file" name="postedFile" class="button"/>
}
</div>

jQuery代码:

$("#dialogUpload").dialog({
        maxheight: 400,
        maxwidth: 400,
        resizable: true,
        draggable: false,
        resizable: false,
        modal: true,
        buttons: [{
            text: "Upload",
            click: function () {
                $.ajax({
                    type: "POST",
                    url: "Controller/UploadFile",
                    dataType: "json",
                    success: function (result) {
                            if (result == true) {
                                $("#dialogUpload").dialog("close");
                                ShowAlertMessage("File successfully Uploaded.");
                            }
                            else {
                                $("#dialogUpload").dialog("close");
                                ShowAlertMessage("Failed to upload the file.");
                            }
                    }
                });

            }
        }]

    });

在我的控制器内部将是这样的:

[HttpPost]
public ActionResult UploadFile(HttpPostedFileBase postedFile)
{
    bool uploaded = false;
    if (postedFile != null && postedFile.ContentLength > 0)
    {
       var fileName = Path.GetFileName(postedFile.FileName);
       var path = Path.Combine("MYPATH",fileName);
       postedFile.SaveAs(path);
       uploaded = true;
    }
   return Content(uploaded);
}

我试过了,但它没有返回到我的 Jquery,所以无论成功与否,我都无法打印消息框。请帮忙。

谢谢。

4

2 回答 2

0

尝试向 jQuery AJAX 调用的失败事件添加处理程序。这将为您提供有关未调用成功处理程序的原因的更多信息。

特别是,请确保请求发送到正确的 URL .... 是您的控制器ControllerController,因为这就是您的 AJAX 调用所期望的。

您可以使用浏览器的开发人员工具查看 AJAX 调用返回的状态和内容(通过在 IE 或 Chrome 中按 F12(不确定 Firefox))。

于 2013-04-19T13:25:55.653 回答
0

它应该是 jsonResult 而不是 ActionResult 并且从控制器端你必须返回你的响应的序列化对象。然后你必须检查你的响应的状态是成功还是失败,如果它是成功的,然后根据那个打印你的消息如果是失败则失败消息。

像这样你必须传递 json 对象

return Json(mew {message=true}, JsonRequestBehavior.AllowGet);
于 2017-06-14T05:30:37.693 回答