0
不保留值我有以下代码:的TempData在FileContentResult
[Authorize]
[HttpGet]
public FileContentResult DownloadMsgAsPdf(string FileId, string outer = "")
{
var Results = (SearchResult)TempData["Results"];
var msg = Results.emails[FileId];
...
return File(pdfBytes, System.Net.Mime.MediaTypeNames.Application.Octet, msg.Id + ".pdf");
}
现在在运行它一次(点击链接),但这一切完全没问题。然而,一旦第二次点击它(没有其他改变或调用),它就会出错,结果为空。我认为这意味着TempData正在清除,但这怎么可能?
以下是完整的代码,如果需要这种耐心:
[Authorize]
[HttpGet]
public FileContentResult DownloadMsgAsPdf(string FileId, string outer = "")
{
var Results = (SearchResult)TempData["Results"];
var msg = Results.emails[FileId];
TempData.Keep();
msg.BodyHTML = System.Web.HttpUtility.HtmlDecode(msg.BodyHTML);
var htmlContent = String.Format("<center><p><b>Case ID</b>: " + msg.Id
+ " <b>User ID</b>: " + Session["userid"]
+ " <b>Privileged</b>: ");
if (msg.Tags != null)
{
htmlContent += msg.Tags.ContainsKey("privileged");
}
else
{
htmlContent += "False";
}
htmlContent += " <b>Downloaded</b>: " + DateTime.Now.ToString("g") + "</center>"
+ " <p> -- Forwarded message -- </p> "
+ " <p><b> From :</b> <a href='#'>" + msg.From + "</a> </p> "
+ " <p><b> Date:</b> Mon, oct 25 2010 at 4:42 PM </p> "
+ " <p> <b>Subject:</b> " + msg.Subject + " </p> "
+ " <p><b> To:</b> " + msg.To + " </p> "
+ " <p><b> Cc: </b> </p> "
+ " <div> "
+ " <ul> ";
if(msg.attachementList != null){
if (!msg.attachementList.Any())
{
htmlContent += "<text> "
+ "<li><label style='color:gray'>No attachment</label></li></text>";
}
else
{
foreach (var attachment in msg.attachementList)
{
var filename = System.IO.Path.GetFileName(attachment);
htmlContent += "<text> "
+ "<li><a href='#'>" + filename + "</a></li></text>";
}
}
}
htmlContent += "</ul>"
+ "</div>"
+ "<div padding: 5px;'>"
+ msg.BodyText
+ "</div>"
+ "</div>";
var pdfBytes = (new NReco.PdfGenerator.HtmlToPdfConverter()).GeneratePdf(htmlContent);
if (outer != "")
{
return File(pdfBytes, System.Net.Mime.MediaTypeNames.Application.Octet, msg.Id + ".pdf");
}
return new FileContentResult(pdfBytes, "application/pdf");
}
感谢您的回复,有什么方法可以多次使用吗? 我试过Session并得到了同样的错误。 – user2463732 2015-03-31 03:58:53