使用$ .Post或$ .Ajax传递HttpPostedFileBase类型

时间:2012-08-02 09:18:34

标签: jquery asp.net-mvc razor

我在我的控制器中有这个动作。

    public ActionResult Upload(HttpPostedFileBase fileData)
    {
        //code for uploading goes here.
        return View();
    }

有没有办法使用$ .post或$ .Ajax访问此操作? 在我的 视图 中,我有这些代码。

<input type="file" name="fileData" id="fileData" multiple/>
<button>Upload</button> 

首先我正在尝试使用此代码

$("button").on("click",function(){
   $.post('@Url.Action' + $(".filedata").val(),function(data){
      console.log(data);
   });
});

但是当我试图突破“上传”操作时,“ filedata ”变量的 null < / strong>价值。

我不知道是什么问题。希望你能帮助我们。

1 个答案:

答案 0 :(得分:0)

您需要有一个IFRAME,用于发布文件。

像这样:

<iframe id="targetUpload" name="targetUpload"></iframe>

在表单中,您将目标设置为iframe。

<form target="targetUpload" name="file" runat="server" method="post" id="file" enctype="multipart/form-data" action="@Url.Content("~/Controller/Action")">

提交按钮

<input type="Submit" value="Upload">