导航时在Server.Target中出现问题

时间:2014-12-26 09:16:34

标签: c# asp.net twitter-bootstrap

我正在使用twitter bootstrap开发一个.net应用程序。

我使用Server.Target从Default1.aspx导航到Default2.aspx,在Default2.aspx的页面加载中,我将Default2.aspx页面保存为html页面并将该html文件邮寄给用户。我在这里面临一些问题。 向用户发送邮件后,应该返回Default1.aspx。

这是我的代码

Default.aspx的:

<asp:Button ID="btnNavigate" Text="Navigate to Default2.aspx" 
runat="server" class="btn btn-sm btn-danger" OnClick="btnNavigate_Click">
</asp:Button>

Default.aspx.cs

protected void btnNavigate_Click(object sender, EventArgs e)
    {
        Context.Items.Add("Id", "10");
        string targetPath = "~/Reports/Default2.aspx";
        Server.Transfer(targetPath);
    }

Default2.aspx.cs

 protected void Page_Load(object sender, EventArgs e)
    {
    if (!IsPostBack)
    {
      if (Context.Items["Id"] != null)
      {
        int Id=Convert.ToInt32(Context.Items["Id"]);
        if (SendDashboardHTMLfileAsEmail(Id)==true)
        {
           Context.Items.Add("TestId", Id.ToString());
           string targetPath = "~/Reports/Default1.aspx";
           Server.Transfer(targetPath);
        }
      }
    }
   }
private void SendDashboardHTMLfileAsEmail(int Id)
  {
  //create Default2.aspx page as html file in a path
  //Send a email to user with an attachment        
  //newly created html file is the attachment
  }

我收到错误无法评估表达式,因为代码已优化或本机框位于调用堆栈顶部,而我正在导航到Default1.aspx页面。

向用户发送邮件后,它不会导航到Default1.aspx,但它仍然在Default2.aspx中。

请帮帮我。

1 个答案:

答案 0 :(得分:1)

请尝试使用Response.Redirect方法。

Response.Redirect("~/Reports/Default1.aspx", false);

但是,您无法使用Context将信息传输到下一页,请改用Session

Session["Id"] = 10;

要检索下一页上的信息,请使用Session对象

上的强制转换
var Id = (int)Session["Id"];