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