在mvc3 asp.net中提交表单之前上传图片

时间:2012-10-22 11:55:49

标签: asp.net-mvc-3 jquery post file-upload

我正在使用asp.net MVC3

我想在提交表单之前上传图片。

下面是我的代码

 <div>
   @using (Html.BeginForm("SaveData", "Home", FormMethod.Post, new { @enctype =      "multipart/form-data" }))
   {
     <div> Image: 
           <input type="file" name="uploadFile" onchange="upload(this);" /></div>
     <div> Name: 
           @Html.TextBoxFor(model => model.Name)</div>
     <div> Address:  
           @Html.TextBoxFor(model => model.Address)</div>
     <div> Phone: 
           @Html.TextBoxFor(model => model.Phone)</div>

     <input type="submit" name="save" id="savedata" title="save" 
        value="save"  />
}         
</div>

<script type="text/javascript">
   function UploadFile(image) {
        //call controller action UploadFile
         $.ajax({
            type: "Post",
            url: "Home/UploadFile",
            data: image,       //This is wrong
            contentType: "application/json; charset=utf-8",
            dataType: "json"
        });
   }
</script>

现在在控制器端

 public ActionResult UploadFile(HttpPostedFileBase uploadFile)
 {
     //save image
 }

任何人都可以建议我在发布表单之前如何上传图像以保存数据。

1 个答案:

答案 0 :(得分:1)

$.ajax()无法做到这一点。虽然有jQuery插件,但是这样做可以帮到你。 Here's oneThis thread还讨论了执行此操作的大量选项。请注意,通过AJAX上传文件是一项相对较新的功能not all browsers support it