最近一个项目中有写一个网页,用户初次登录要按流程完成相应操作,每次跳转后记下历史访问记录的网页,中途关闭浏览器或其他原因没有按时完成的。再次登录的时候可以跳转到历史访问记录的网页。本来这个是很好实现的,但是跳转的页面都是在Iframe框架里。刚开始我是这样的写的:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ZLWS.aspx.cs" Inherits="CUST.XSBD.Student.ZLWS"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<body>
<form id="form1" runat="server">
<iframe class ="home_content" id ="iframe_ymmc" src="<%=ymmc%>"
</iframe>
</form>
</body>
</html>
在ZLWS.aspx.cs中定义一个全局变量:
public string ymmc;
if (!IsPostBack)
{
DataRow dr = xs.GetLSFWYMByKSH().Tables[0].Rows[0];
ymmc = dr["lsfwym"].ToString().Trim();
}
这样的结果是页面抛出找不到资源的Bug,原因是 再次登录时Iframe内src要在页面加载之前就得获取到。而这样写的显然不对,想了很久之后找到了解决办法:
将ymmc变量设为静态的就OK了。