2013-01-01 62 views
0

我们使用ASP.Net Mvc 4.0。无法使用ajax发布文件

我的目标是保存具有正常输入字段和文件输入字段的表单。 我应该可以在发布时添加额外的数据。 我应该能够对“Ajax Post的成功”执行一些操作。

我们使用ajax post来发布表单数据,因为我们可以在2以上完成,但是无法序列化并将文件发布到服务器。

每当我们发布使用ajax后,总是Request.Files.Count == 0,当我检查我的控制器的发布行动。

我已经使用AJAX的职位是:

 

     function PostData(formId, eventSource, eventName, eventArgs, controlId) { 
    var $dialogForm = $("#" + formId + "Form"); 

    fdata = $dialogForm.serialize(); 
    fdata = fdata + '&eventSource=' + eventSource + "&eventName=" + eventName + '&eventArgs=' + eventArgs; 

    $.ajax({ 
     url: $dialogForm.attr("action"), 
     type: $dialogForm.attr("method"), 
     cache: false, 
     data: fdata, 
     success: function (result) { 
      ProcessEvent(result); 
     } 
    }); 
} 


请给我一个解决方案为这个!

+0

请加你想你的Ajax代码和控制器代码! –

+0

http://www.sitepoint.com/html5-ajax-file-upload/ – karaxuna

回答

0

当你使用ajax的概念时,你无法上传文件。但有一些调整用于使用ajax上传文件和表单数据。无论何时在表单中遇到文件类型时,表单数据和文件都可以复制到iframe,并且可以提交iframe,让您感觉文件已经使用ajax与其他表单数据一起上传。

在jquery中有各种插件可以让你轻松完成这项任务。 我最喜欢的一个是阿贾克斯形式

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

您可以使用这一个..

+0

谢谢Rajesh的建议,但我必须实现没有框架! –

+0

它的非帧..它的iframes和那些内部..你需要使用插件只能使它的工作..只要工作完成iframe被插件删除..技术上没有其他方式可以实现文件上传与ajax没有iframe ..如果我错了任何人纠正我..谢谢.. – Rajesh

+0

对不起,其实我的意思是iframes! –