我正在使用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中。
请帮帮我。
答案 0 :(得分:1)
请尝试使用Response.Redirect方法。
Response.Redirect("~/Reports/Default1.aspx", false);
但是,您无法使用Context将信息传输到下一页,请改用Session
:
Session["Id"] = 10;
要检索下一页上的信息,请使用Session
对象
var Id = (int)Session["Id"];