首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • aspx页面怎样互相访问? [已结帖,结帖人:greatverve]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • greatverve
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-11-10 11:18:40 楼主
    第一个页面
    C# code
    public partial class _Default : System.Web.UI.Page { public string str = "hello"; protected void Page_Load(object sender, EventArgs e) { } }

    第二个页面
    C# code
    public partial class index: System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write(_Default.str);//为什么不可以这样访问? }
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wjq
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:19:551楼 得分:5
    public static string str = "hello";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangjun8868
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:20:542楼 得分:5
    UP
    你写错了吧
    应该是Request.redrect(index.str);//为什么不可以这样访问?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yangsongshuang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:24:233楼 得分:5
    public string str = "hello";
    要定义成静态的,楼上正解
    要不你就实例化一个
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangjun8868
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:27:034楼 得分:5
    意思是
    Response.Write(index.aspx.str);//另一个页面的参数或方法
    //帮你描述一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • enihs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:27:305楼 得分:5
    _Default是类的名字,类名后直接你加个静态变量还好理解点吧,不然你就new一个_Default
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • SnowQuery
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:28:096楼 得分:5
    UP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kook_tian
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:28:217楼 得分:5
    无论你想如何访问都需要中间介质,简单可通过url,复杂一点的用session,静态类等。好像没啥比这更好的方法。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lilihua520
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:29:128楼 得分:2
    Request.redrect这个吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kfps8kfps8
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:29:299楼 得分:1
    引用 1 楼 wjq 的回复:
    public static string str = "hello";


    正解
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • greatverve
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:31:2710楼 得分:0
    知道了,原因很简单,并不是我不知道用static
    主要是:不知什么原因,我输入_Default d = new _Default()的时候没有代码提示。
    我以为访问不到。为什么会没有代码提示呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • superplayboy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:32:3911楼 得分:1
    要么在default里面改
    public static string str = "hello";

    要么在index里面改
    Response.Write(new _Default().str);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jiang_jiajia10
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:34:1412楼 得分:1
    public static string str = "hello";

    静态成员只能由类名访问
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangjun8868
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:34:1713楼 得分:10
    为什么这样
    Response.Write(index.aspx.str);
    不行
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangjun8868
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:35:5714楼 得分:5
    引用 11 楼 superplayboy 的回复:
    要么在default里面改
    public static string str = "hello";

    要么在index里面改
    Response.Write(new _Default().str);


    我狂汗

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • coketea
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:39:5415楼 得分:5
    建议用session对象给一个变量赋值就好了
    session["str"]="Hello"这样每个页面都可以直接把一个变量的值赋予给他,
    如果要申明很多变量
    建议新建一个类,专门申明你要得到的变量,使用get和set
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • starfd
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:47:0216楼 得分:0
    引用 11 楼 superplayboy 的回复:
    要么在default里面改
    public static string str = "hello";

    要么在index里面改
    Response.Write(new _Default().str);


    已经做出回答
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • claymore1114
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:50:2117楼 得分:5
    引用 10 楼 greatverve 的回复:
    知道了,原因很简单,并不是我不知道用static
    主要是:不知什么原因,我输入_Default d = new _Default()的时候没有代码提示。
    我以为访问不到。为什么会没有代码提示呢?

    你的类 不是放在 默认编译类中,默认类放在App_Code 文件夹中,才能访问。
    1)把你的类 剪切到 App_Code 文件中。
    2)你还可以试试 在2个类的前面 加一个相同的 namespace命名空间,可能能访问。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jiangfeng0827
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:51:4218楼 得分:5
    引用 1 楼 wjq 的回复:
    public static string str = "hello";


    正解
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • w161134025
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:54:1819楼 得分:5
    public static string str = "hello";

    静态成员只能由类名访问
    申明为静态的就可以直接访问,不然每次都要new实力化一次
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • SANSWATER
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 11:57:3920楼 得分:5
    解决方法好多,看你怎么择了,
    最简单的加 static
    或 new _DEFAULT().str
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • pangxiaoliang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 12:06:2221楼 得分:15
    webform != WinForm
    还是用session,cookie,?XXX=jjj&YYY=jj传递参数吧,嘿嘿
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lang83206569
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 12:11:4422楼 得分:5
    jf
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bingdian37
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 12:21:4023楼 得分:0
    楼主对WEB不甚理解...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • himner
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 17:01:0024楼 得分:0
    建议用Session或者用?name=''传递。
    要么就定义一个类,利用属性专门存取常用的信息。
    这样的话,很方便。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mxq007
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-10 19:25:3625楼 得分:0
    引用 17 楼 claymore1114 的回复:
    引用 10 楼 greatverve 的回复:
    知道了,原因很简单,并不是我不知道用static
    主要是:不知什么原因,我输入_Default d = new _Default()的时候没有代码提示。
    我以为访问不到。为什么会没有代码提示呢?

    你的类 不是放在 默认编译类中,默认类放在文件夹中,才能访问。
    1)把你的类 剪切到 App_Code 文件中。
    2)你还可以试试 在2个类的前面 加一个相同的 namespace命名空间,可能能访问。


    正解。
    楼主主要是想知道为什么不能直接在一个窗体内实例化另一个窗体 是吧,上面说的很好 是那样的。aspx使用的是partial class,App_Code 里面才是全局类,放进去肯定是可以的。不过好像以前在WinForm里也是一样的局部类,但是却可以访问,也不知道为什么,期望高手解答...
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved