在一个index.aspx中有一行代码,嵌入一个用户信息的网页,用于显示用户登录后的名称,下面的代码在浏览器端可以正常浏览,但是编译有问题,因为在userstate.aspx的顶部没有<%@ Page Language="C#" %>声明,所以编译时有语法错误的提示。
我应该怎么办才能没有这个提示,或者有什么变通的方法,在用户登录以后能够显示用户的名称。
前提:
1、不想用MASTER因为比较麻烦,而且生成的客户端ID太长。
2、必须在单独的userstate.aspx中实现,因为有很多个网页都要嵌入它,所以不能单独做到index.aspx中
3、不想用ASCX,包含进去太麻烦,顶部都需要声明
4、不想用FRAME。谢谢大家!
<!--#include file="/userstate.aspx" -->userstate.aspx的源代码 <div><asp:Literal ID="LiteralMemberLoginInfo" runat="server"></asp:Literal></div>
<%
//根据客户端验证票内容,得到客户端用户的信息
if (User.Identity.Name.ToString().Trim() != "")
{
    LiteralUser.Text = "欢迎您,"+User.Identity.Name;
}
else
{
    LiteralUser.Text = "欢迎您的光临!";
}   
%>

解决方案 »

  1.   

    传说中在asp.net中不能用include
      

  2.   

    可以用include,但用iframe效果应该是一样的!你是想在静态页面里面包含动态页面?为什么要这样呢?
      

  3.   

    用户控件也可以,但是引用不方便,在每个引用的页面顶部都需要定义太麻烦。
    而且在一些没有<%@ Page Language="C#" %>声明的地方不能引入。-------------------------------------------
    传说中在asp.net中不能用include
    的确ASP.NET的概念不建议用include但是有一些地方用include还是有他的便利条件的。如果没有什么好的方法,可以迁就一下用iframe.谢谢你们的回复。
      

  4.   

    其实用IFRAME的确都差不多,但是看着一个网页中,还有另外一个框架有点别扭。这是个人的爱好决定,但是看来最好还得用iframe
      

  5.   

    谢谢大家,马上结贴,最后还是用IFRAME