我的问题如下:我有 mvc3 项目。问题出在 Excel 工作表加载页面中。首先,我想将 excel 表上传到数据库。接下来,我根据该 excel 表创建 pdf 并将该 pdf 返回给用户。最后我想更新 ui 中的行,新的 excel 表已经加载。
所以主要问题是在将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)
{
}
}
如果我返回 null 或 emptyResult 以外的其他内容,则 pdf 不再返回给用户。这就是我创建PDF并将数据写入响应的方式:
[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);
}
我试图处理 jquery 和 ajax,我可以在该 pdf 文档结束后继续处理,但是当我执行例如 ajax 发布操作时,它没有返回成功消息。它将在 Mozilla 上返回错误代码 0,而 IE 返回代码 500(内部服务器错误)。这就是我尝试在 ajax 上发帖的方式:
$("#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. 将 Excel 加载到数据库 2. 将 excel 解析为 pdf 3. 将 pdf 返回给用户。4.更新ui(问题是在将pdf返回给用户后更新ui)
如果有人可以帮助我,我真的很感激。我真的很困惑我该怎么做?