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"
});
所以現在它返回到我的屏幕,但它弄亂佈局和刷新屏幕(似乎)無論如何。有沒有其他簡單的方法可以用我使用的方法返回到前一個屏幕,而不會丟失所有輸入的信息?
我不知道這是如何工作的...我如何控制它上傳到哪裏? – 2014-10-16 11:21:17
data-url屬性。 – aleha 2014-10-16 12:04:00