【问题标题】:the name "###" doesn't exist in current context当前上下文中不存在名称“###”
【发布时间】:2015-09-11 03:26:15
【问题描述】:

我有 2 个文件。在第一个中,我声明了一个带有方法的静态类。 在第二个文件中调用它时,我收到一条错误消息,指出当前上下文中不存在该类的名称。我认为我在命名空间方面存在一些问题,我并没有得到很好的解决。

文件 1:App_Code/SessionAccess.cs

namespace edpermdb.App_Code
{
   public static class SessionAccess
   {
      public static DataTable GetSessions()
      {...}

文件 2:/default.aspx.cs

  namespace edpermdb
  {
     public partial class _default : System.Web.UI.Page
    {
       protected void Page_Load(object sender, EventArgs e)
       {
          liste.DataSource = SessionAccess.GetSessions();
          //on relie la liste à la source de données
          liste.DataBind();

默认页面中的 SessionAccess 无法识别。

【问题讨论】:

    标签: asp.net c#-4.0 namespaces


    【解决方案1】:

    SessionAccess 所在的命名空间更改为与_default 类相同的命名空间:

    namespace edpermdb
    {
       public static class SessionAccess
       {
          public static DataTable GetSessions()
          {...}
    

    如果这不可行,请在第二个文件的顶部添加 using edpermdb.App_Code

    【讨论】:

    • 我进行了更改,以便可以使用相同的命名空间。但我仍然得到错误。当我去课堂资源管理器时。我为 2 个命名空间使用了相同的名称“edpermdb”,但其中包含不同的文件。第一个只包含 default.aspx.cs 和第二个,其余的文件。
    【解决方案2】:

    您已经在命名空间edpermdb.App_Code 中定义了您的类,并且您正尝试在不同的命名空间中使用它。在使用前指定using edpermdb.App_Code;,或右键单击类名并从上下文菜单中选择Resolve

    using edpermdb.App_Code; //here
    namespace edpermdb
      {
         public partial class _default : System.Web.UI.Page
        {
           protected void Page_Load(object sender, EventArgs e)
           {
              liste.DataSource = SessionAccess.GetSessions();
              //on relie la liste à la source de données
              liste.DataBind();
    

    【讨论】:

    • 我尝试输入该行,但命名空间中不存在 App_code。这就是它所说的。
    • @djasy3,尝试注释掉 page_load 事件中的行,编译您的 Web 应用程序,然后他们取消注释这些行,看看错误是否消失。
    • 我做到了,但是当我取消注释时,错误仍然存​​在。我不明白为什么,当我进入类资源管理器时,它给了我 2 个相同的命名空间,但其中包含不同的文件。
    猜你喜欢
    • 2013-10-02
    • 2014-04-22
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 2020-11-02
    • 2011-10-19
    相关资源
    最近更新 更多