2014-10-16 118 views
0

我有一個上傳視圖,需要使用上傳三個附件。現在我在視圖中使用此代碼用於UI部分:jquery返回到沒有刷新屏幕的同一屏幕

<div id="theDeliveryNoteContent"> 
    <form action='Order/Save' method="post" enctype="multipart/form-data" id="deliveryNoteForm"> 
     <div > 
      <label style="text-align: left;">Delivery note:</label> 
      <input type="file" name="DeliveryNoteFile" id="DeliveryNote" style="width: 400px;" />  
      <div style="margin-top:4px;margin-bottom:4px" >  
       <input type="submit" value="Upload" id="btnAddAttachment" /> 
      </div> 
     </div>    
    </form> 
</div> 

現在我要調用的方法位於我的訂單控制器中。這是我正在使用的方法。代碼工作正常,直到返回部分。

[HttpPost] 
    public ActionResult Save(HttpPostedFileBase DeliveryNoteFile) 
    { 
     try 
     { 
      string customer = GetCustomerLinkedToPortalUser(); 
      var uploadPath = "C:\\Attachments\\" + customer; 
      if (!Directory.Exists(uploadPath)) 
      { 
       Directory.CreateDirectory(uploadPath); 
      } 
      if (DeliveryNoteFile != null) 
      { 

       var fileName = Path.GetFileName(DeliveryNoteFile.FileName); 
       var physicalPath = Path.Combine(uploadPath, fileName); 
       DeliveryNoteFile.SaveAs(physicalPath); 
      } 
      return RedirectToAction("Index"); 
     } 
     catch (Exception) 
     { 

      throw; 
     } 

    } 

問題是,當方法返回到屏幕時,刷新屏幕並丟失所有輸入的信息。我想將文件保存到該目錄並返回到訂單屏幕並上傳下一個文件。現在,我應該怎麼做,我不知道這是我需要幫助。

一位同事提到我可以使用jQuery.Form腳本來做一個ajax調用,所以我做的是我將jquery.form.js腳本添加到我的項目中,做了引用,並且我也將它添加到了我的javascript中:

$("#deliveryNoteForm").ajaxForm({ 
     target: "#theDeliveryNoteContent" 
    }); 

所以現在它返回到我的屏幕,但它弄亂佈局和刷新屏幕(似乎)無論如何。有沒有其他簡單的方法可以用我使用的方法返回到前一個屏幕,而不會丟失所有輸入的信息?

回答

0

你需要異步文件上傳。使用this。閱讀一些文檔,這很簡單。

實施例:

的Javascript初始化:

$(function() { 
    $('#DeliveryNote').fileupload({ 
     dataType: 'json', 
     done: function (e, data) { 
      $.each(data.result.files, function (index, file) { 
       $('<p/>').text(file.name).appendTo(document.body); 
      }); 
     } 
    }); 
}); 

HTML:

<input id="DeliveryNoteFile" type="file" name="files[]" data-url="yourUploadController/Save/" style="width: 400px;" /> 

和除去提交按鈕。

+0

我不知道這是如何工作的...我如何控制它上傳到哪裏? – 2014-10-16 11:21:17

+0

data-url屬性。 – aleha 2014-10-16 12:04:00