2012-10-22 70 views
1

我正在使用asp.net MVC3上傳圖片之前提交表單mvc3 asp.net

我想上傳圖像之前提交表單。下面

是我的代碼

<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

$.ajax()沒有這個能力。有jQuery插件可用,但爲您做到這一點。 Here's oneThis thread還討論了執行此操作的負載選項。請注意,通過AJAX上傳文件是一個相對較新的功能,並且not all browsers support it