我有一个aspx页面,我想根据会话显示另一个aspx或html页面的内容。逻辑后面的代码将根据会话从特定位置获取文件。我不想使用框架,iframe,因为我必须确保跨浏览器兼容性。还有其他方法可以达到这个目的吗?
用户控制可能是解决此问题的方法。我想知道更多的替代方法。
以下是我的代码:
除了对外部js文件的引用外,我在aspx中没有任何内容。
代码背后:
private void Page_Load(object sender, System.EventArgs e)
{
_getMainMenu();
}
protected string _getMainMenu()
{
string HomePageMenu = string.Empty;
string homeExist = Server.MapPath("../homepages/" + Session["ACCOUNT"].ToString() + "/HomePage.htm");
if (File.Exists(homeExist ))
{
HomePageMenu = "../homepages/" + Session["ACCOUNT"].ToString() + "/HomePage.htm";
}
else
{
HomePageMenu = "../homepages/NewMenu.html";
}
return HomePageMenu ;
}
感谢。
答案 0 :(得分:0)
听起来像jQuery load这样的东西可能会有所帮助。这将异步检索内容并将其置于您选择的控件中,当然不一定是iframe。这是从客户端调用的,但您可以让服务器端逻辑/会话状态确定返回的内容。
答案 1 :(得分:0)
您应该更改一般管理内容的方式。 在您的情况下,您的aspx页面就是您的内容。如果你想在一个aspx页面中显示一个aspx页面,那么你需要在另一个aspx页面中显示一个aspx页面。
更改观点:您的aspx页面应该只是您的内容持有者。将您的内容提取到ascx-usercontrol或将其存储在数据库中。
然后,您就可以在需要的时候获取内容。
在另一个内部显示一个aspx页面是一个非常糟糕的解决方案。
但如果无法改变内容的存储方式:我会优先选择iframe。