我可以在asp.net mvc中的jquery对话框中上传文件

我有一个表单,用户输入其数据及其图像。 此表单将位于jquery对话框中。 我想知道是否有可能,如果我上传一个图像,然后将其发送到服务器以便在此之后保存在硬盘驱动器上,而不会丢失该对话框,则会打印文件上传的消息。 如果是,那么我如何使用jquery ajaxform 插件 。 我正在使用asp.net mvc。

我试过的内容如下

我的看法

我的JQuery

 function dialogs(id) { $(function () { var ph = $("#Jobs"); ph.dialog({ width: 700, modal: true, show: 'slide', closeText: 'hide', draggable: false, resizable: false }); //}); }); } function clik(id) { dialogs(id); return false; } var options = { url: "/Post/UploadImages" }; $('#frmupload').ajaxForm(function (options) { //alert(data); alert("Thank you for your comment!"); }); 

查看以下使用AJAX文件上传的示例(遗憾的是,它看起来没有给出JavaScript):

http://jquery.malsup.com/form/#file-upload

基本上,您需要在options对象中包含iframe属性:

 var options = { url: "/Post/UploadImages", iframe: true }; 

问题是该插件需要一个包含在标签中的响应(因为响应类型必须是HTML或XML)。 您可以通过引入自己的响应来处理AJAX文件上传来方便地执行此操作,如此处的博客文章中所述:

 public class FileUploadJsonResult : JsonResult { public override void ExecuteResult(ControllerContext context) { this.ContentType = "text/html"; context.HttpContext.Response.Write(""); } } 

然后在你的控制器动作中:

 return new FileUploadJsonResult { Data = new { /* ... */ } };