2012-09-27 131 views
1

我是一位試圖理解他人代碼的新程序員。該程序的目的是使用書籤將MySQL數據放入Word文件模板中。 AR和ICN是兩種類型的報告,因此它們都有自己的模板。該代碼最初只包含AR,我現在添加了ICN。控制檯應用程序運行良好,我遇到了網頁問題。我不明白爲什麼我的代碼中的if (int.TryParse(ticketId, out currentTicket))FALSE,它會生成default.aspx。爲什麼要調用默認的aspx?

試圖查看broswer這個代碼

using System; 
using System.Web; 
using TicketExtractionLibrary; 

namespace TicketExtractionWeb 
{ 
    public partial class GetAR : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      string ticketId = Request.QueryString["TicketId"]; 
      int currentTicket; 

      string applicationPath = Request.PhysicalApplicationPath; 
      ARExtractionController ARController = new ARExtractionController(); 

      string arTemplateLocation = HttpContext.Current.Server.MapPath("~/AR.dot"); 
      string mappingLocation = HttpContext.Current.Server.MapPath("~/ARmapping.xml"); 

      if (int.TryParse(ticketId, out currentTicket)) 
      { 
       ARController.Extract(currentTicket, applicationPath + "LastTickets", arTemplateLocation, mappingLocation); 

       Response.Clear(); 
       Response.Buffer = true; 
       Response.ContentType = "application/msword"; 
       Response.AddHeader("content-transfer-encoding", "binary"); 
       Response.AddHeader("content-disposition", "attachment;filename=AR" + ticketId + ".docx"); 

       Response.ContentEncoding = System.Text.Encoding.GetEncoding(1251); 

       string path = Server.MapPath(@"\LastTickets\AR" + ticketId + ".docx"); 
       System.IO.FileInfo file = new System.IO.FileInfo(path); 

       Response.WriteFile(path); 

       Response.End(); 
      } 
      else 
      { 
       Response.Redirect("Default.aspx"); 
      } 
     } 
    } 
} 

Solution Explorer

+0

檢查的Request.QueryString [ 「TicketId」]的價值 –

+0

值是10 –

回答

4

它說,如果TicketID通過查詢字符串傳遞不是整數,那麼就沒有報告或Word文檔生成,因此將用戶重定向到default.aspx頁面。

+0

啊,這是真的。在提出這個問題之前,我應該使用int.tryparse。我應該刪除它嗎? –

+1

不,即使是基本的問題也應該出現在SO中。其他人可能會提出一個類似的問題,這將是很好的找到你的問題與答案。 – Cyberherbalist

0

TicketID的值不能是整數,因爲TryParse會返回FALSE並且您被重定向到默認頁面。確保TicketID值是整數。

相關問題