我的問題如下: 我有mvc3項目。問題出在excel表單加載頁面。首先,我想將Excel表格上傳到數據庫。接下來,我根據該Excel表創建PDF,並將該PDF返回給用戶。最後,我想更新用戶界面中的行,新的Excel表已經加載。如何將文件返回給用戶並更新UI
所以主要的問題是我不能在將pdf文檔傳遞給用戶之後更新行。
這是我試過的簡短例子。首先是我的客戶端上傳。 (我用Microsoft.Web.Helpers.FileUpload分量):
@using (Html.BeginForm("NewFile", "LoadData", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@FileUpload.GetHtml(initialNumberOfFiles: 1, allowMoreFilesToBeAdded: false, includeFormTag: false, addText: "Add Files", uploadText: "Upload File")
<input type="submit" name="submit" id="submit" value="Lataa tiedot" />
}
用戶按下後提交按鈕應該發生的功能就是我在我的文字前出臺。這是我的加載Excel工作表,並創建PDF文件:
[HttpPost]
public ActionResult NewFile(IEnumerable<HttpPostedFileBase> fileUpload, bool checkPrintAlso, bool chkBigCards, int hiddenCustomer, string comment)
{
try
{
foreach (var file in fileUpload)
{
if (file != null && file.ContentLength > 0)
{
var excelService = new ExcelService();
var trackingCodes = excelService.NewLoadData(file, User.Identity.Name, comment, hiddenCustomer);
if (checkPrintAlso)
{
CreatePdf(trackingCodes, chkBigCards);
return new EmptyResult();
}
}
return RedirectToAction("Index", error);
}
catch (Exception e)
{
}
}
如果我回來的東西比空或emptyResult PDF否則不會再返回到用戶。我這是怎麼createPdf和寫入數據的響應:
[HttpPost]
public void CreatePdf(IEnumerable<TrackingCode> trackingCodes, bool isBig)
{
//This creates pdf
var blackGinBarCodePdf = new BlackGinBarcodePdf(trackingCodes, isBig);
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", string.Format(CultureInfo.InvariantCulture, "attachment;filename=Receipt-{0}.pdf", "briefcases"));
Response.BinaryWrite((byte[])blackGinBarCodePdf);
}
我已經試過了PDF文檔最終用戶以後做處理jQuery和AJAX,我才能夠着手處理,但是當我例如AJAX做發佈操作它不返回成功消息。它將在Mozilla上返回錯誤代碼0,並且IE返回代碼500(內部服務器錯誤)。這是我已經試圖在阿賈克斯發帖:
$("#submit").click(function()
{
$.ajax(
{
url: "/LoadData/NewFile",
type: 'post',
error: function (xhr, ajaxOptions, thrownError)
{
alert(xhr.status);
alert(thrownError);
},
success: function (data) { }
})
//add row to ui!
;
});
所以希望有人能夠理解我的問題。再次,點擊按鈕後,我需要做什麼。 1. LoadExcel to db 2.解析excel爲pdf 3.將pdf返回給用戶。 4.更新UI (問題是在將pdf返回給用戶後更新ui)
如果有人可以幫助我,我真的很樂觀。我真的很困惑我該怎麼做?
您可能想要使用爲控制器提供的File方法:return File((byte [])blackGinBarCodePdf,而不是將您的PDF結果寫入Response(這是一種更正常的ASP而不是MVC)應用/ PDF「); – 2012-08-16 07:16:23