本帖最后由 zhfjet 于 2014-04-09 15:43:08 编辑

解决方案 »

  1.   


    方法我已经public了
    请问在ashx调用的语句怎么写呢?
      

  2.   

    disease_type_dep.aspx下,我建了一个public string GetColor(int temp)现在在test.aspx下,代码: 
    disease_type_dep dtd = new disease_type_dep();
                string temp =dtd.GetColor("1");
      

  3.   


    我是要在一个ashx,是ashx里调用aspx里的方法,如果我按照这样做,会提示未找到类或缺少命名空间.......
      

  4.   

    类名 XX new 类名() xx。呗 反正上次我做文件管理的时候是这样做的··
      

  5.   

    在一个网站中,也许不止一个aspx网页。
    就是把aspx.cs内的方法宣告为public,ashx也知道是哪一个aspx的方法。
    就是当前的aspx.cs有应用了这个ashx,这个ashx也不知道呼叫的方法在当前这个aspx中。
      

  6.   

    假设有Default.aspx和Default.aspx.cs的网页。然后再你的 ashx里面这样写:   _Defalut deft = new _Defalut(); deft.公共方法();
      

  7.   

    然后再你的 ashx里面这样写:   _Default deft = new _Default(); deft.公共方法(); 上面拼写错了
      

  8.   

    直接实例化aspx.cs里面的类,然后调用不可以吗
      

  9.   

    如果只是单纯的方法的话,还不如封装在BLL层中的方法类中!让aspx和ashx都能调用到就好了啊
      

  10.   


    我是要在一个ashx,是ashx里调用aspx里的方法,如果我按照这样做,会提示未找到类或缺少命名空间.......没看代码吗?实例化如果提示命名空间,说明你的两个CS不在同一个命名空间下,你自己USING一下不会吗?哎。
      

  11.   

    会提示未找到类或缺少命名空间 
    说明你的ashx 和aspx 页面不是同一个命名空间
    你改下命名空间就好了 或者using一下
      

  12.   


    我是要在一个ashx,是ashx里调用aspx里的方法,如果我按照这样做,会提示未找到类或缺少命名空间.......没看代码吗?实例化如果提示命名空间,说明你的两个CS不在同一个命名空间下,你自己USING一下不会吗?哎。真不会,菜鸟一个,求大侠指教。
    我知道要using,但是不知道using哪个?
      

  13.   


    aspx的命名空间是哪个,我菜鸟一个,求指点?
      

  14.   

    建议先帖你写的代码,如xxx.aspx,xxx.aspx.cs和xxx.ashx.cs
    网友们才根据你写的来检测与判断。
      

  15.   

    不知这个是否适合你的要求?
    more details:
    http://www.cnblogs.com/insus/p/3656800.html
      

  16.   


    完全搞复杂了,根本不需要接口。假设有Default.aspx和Default.aspx.cs的网页。在.ashx里面用下面代码访问毫无阻碍:_Default deft = new _Default(); 
    deft.公共方法(); 
      

  17.   

    为了调用page里的一个方法实例化一个page?太逗了,把这个方法分离出来。
      

  18.   


    那有什么逗的,因为这个方法里可能用到其他控件的,你不实例化怎么用? 不然你直接写成static不就得了
      

  19.   


    那有什么逗的,因为这个方法里可能用到其他控件的,你不实例化怎么用? 不然你直接写成static不就得了在ashx里调用另一个aspx里的控件,是不是更逗?
      

  20.   


    那有什么逗的,因为这个方法里可能用到其他控件的,你不实例化怎么用? 不然你直接写成static不就得了在ashx里调用另一个aspx里的控件,是不是更逗?
    有道理,本身ashx就是不调用控件的,去调用控件直接在aspx调用就结了
      

  21.   


    我个人也觉得在ashx里面调用aspx.cs里面的方法感觉很怪,如果非要实现的话,有个更简单的方法不需要定义接口。
    有个叫反射的东西。Type type = System.Web.Compilation.BuildManager.GetCompiledType("~/A.aspx");
            System.Reflection.MethodInfo method = type.GetMethod("Say");
            object s = method.Invoke(Activator.CreateInstance(type), new object[]{"Insus.NET"});        HttpContext.Current.Response.Write(s.ToString());
      

  22.   

    既然跟这个Page页毫无关系,你写在Page里干什么,单独出来,那个类都能调用不就完了。我只是如实回答楼主的问题而已。
      

  23.   


    这要看你开发的project还是web site了。请看这里:
    http://www.cnblogs.com/insus/p/3656800.html#2915211
      

  24.   


    这要看你开发的project还是web site了。请看这里:
    http://www.cnblogs.com/insus/p/3656800.html#2915211你示例中不就是一个网站吗?
      

  25.   


    这要看你开发的project还是web site了。请看这里:
    http://www.cnblogs.com/insus/p/3656800.html#2915211
    另外用接口也完全是多此一举。 你已经知道A.aspx里有什么方法了,还需要用接口吗?接口只是说在你不知道对方是否实现了某种方法时需要进行判断。现在问题只是怎么样去调用的问题。
      

  26.   


    是的,有问题吗?
    难道你的意思是,在web site之下,B.aspx.cs中也能A a = new A();或是或是在A.aspxcs中也能B b = new B(); ?
      

  27.   


    这要看你开发的project还是web site了。请看这里:
    http://www.cnblogs.com/insus/p/3656800.html#2915211实际上A.aspx.cs和B.aspx.cs一旦你按下ctrl+s并开始访问的那一刻,就自动自动编译好了,而且为public访问,也就是说你随意用_Default deft = new _Default()创建就行了,你是MVP,怎么会犯这样的错误呢
      

  28.   


    恳请指教。
    Insus.NET说实的,在开发过程中,所想到的真不能一步到位,在博文中今早2014-04-11 08:10分已经有补充与完整。
    http://www.cnblogs.com/insus/p/3656800.html
      

  29.   


    是的,有问题吗?
    难道你的意思是,在web site之下,B.aspx.cs中也能A a = new A();或是或是在A.aspxcs中也能B b = new B(); ?完全可以,不信你试试,原因很简单,页面也是一个类,类从你ctrl+s那一刻就已经建立好了,而且为public,为什么不可以实例化呢?实际上asp.net页访问是按需创建的(如果没有预先整个网站编译过的话),访问a.aspx,会自动编译a然后创建a的页面类,如果a的页面类里面引用了b页面类了,按照程序的运行步骤,会去创建页面b类,反正都是public,大家随意引用创造。
      

  30.   


    是的,有问题吗?
    难道你的意思是,在web site之下,B.aspx.cs中也能A a = new A();或是或是在A.aspxcs中也能B b = new B(); ?完全可以,不信你试试,原因很简单,页面也是一个类,类从你ctrl+s那一刻就已经建立好了,而且为public,为什么不可以实例化呢?实际上asp.net页访问是按需创建的(如果没有预先整个网站编译过的话),访问a.aspx,会自动编译a然后创建a的页面类,如果a的页面类里面引用了b页面类了,按照程序的运行步骤,会去创建页面b类,反正都是public,大家随意引用创造。你们都没发现前提吗?前提就是在同一命名空间下,所有的类只要PUBLIC,都是可以互相调用的,不同命名空间,则需要USING。而且这问题本身有没有意义并不重要,重要的有人问,就有人回答,难道helloworld就有意义?我始终认为,项目经验的积累比纸上谈兵要好的多,写得多看得多了再回头看自己以前的代码,总会发现以前的思路,代码都有可能是走了歪路的。
      

  31.   

    你这个开发的是网页程序吧?否则web应用是存在命名空间的概念的
      

  32.   

    这个不是良构。如果有一些方法有重用的价值,应该把它们独立出来单独组成一个类库。aspx是表现层的逻辑。是一次性投资。
      

  33.   

    方法使用public    然后跟类中的方法一样调用就可以了
      

  34.   

    2B做法 难道aspx没周期的么? 你说调用就调用?比如aspx里有一个绑定方法 
    label.text=datetime.now;就算你调用了 你啥都看不到吧如果跟UI相关 页面都没有 你怎么操作?如果跟UI没关 属于业务 ,难道不应该提出来吗?本来思想就错的 如果非要调用 还不如用xxxx.ashx/method+WebClient模拟post呢...
      

  35.   


    太对了insus 貌似是个高手,怎么不明白了?似乎在误导哦
      

  36.   

    有这种想法就说明你的程序需要改造下了,为什么aspx和ashx不统一调用一个地方呢?
      

  37.   


    Insus.NET在#9楼有回复了。
    实际开发过程中,不必这样去做。一旦发现某一函数或方法需要多次呼叫,得需重构这个方法或是函数。说实的,Insus.NET刚学asp.net时,所开发的网站(web site),而不是Project。也有犯下这样的过错,在B.aspx.cs内去new A网页的实例后使用到A.aspx.cs内的public方法或是函数。不管怎样,根本无法A a = new A(); 因为这是web site网站,而不是project 网站。但是楼主需要这种方法。Insus.NET只是尝试一下而已,方法仅供参考。
    http://www.cnblogs.com/insus/p/3656800.html