类型或命名空间不存在?(静态类)

3

我刚开始创建我的网站(从头开始,空项目),但我遇到了一些错误,而且我真的很困惑! 错误 Default.aspx

<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="MonoLightTech.WebSite.Default" %>
<html>
    <head>
        <meta charset="utf-8" />
        <title>MonoLight Technology</title>
    </head>
    <body>
        <%= MonoLightTech.WebSite.Style.TestField %>
    </body>
</html>

Style.cs(构建操作:编译)

namespace MonoLightTech.WebSite
{
    public static class Style
    {
        public static string TestField = "MonoLight Technology";
    }
}

解决方案层次结构

解决方案层次结构

Visual Studio:我还注意到,VS可以看到样式类和TestField成员。

在此输入图片描述

我已经是C#程序员了(桌面应用程序),我确定成员访问没有问题。我还重新打开了项目,清理了解决方案并重新生成了项目。怎么回事?我认为这应该很简单 :)

编辑:这里是包含所有源代码和所有资产的解决方案项目 >>


1
Style.cs 是否在与 Default.aspx 相同的项目中? - Fyodor Soikin
你的项目是一个网站还是一个网络应用程序? - vcsjones
1
@vcsjones 这是“ASP.Net Web应用程序”。 - Thus Spoke Nomad
如果您尝试在代码后台访问该字段(运行代码,不要信任IntelliSense),它是否有效?例如:var test = MonoLightTech.WebSite.Style.TestField; - mason
@mason 仍然不起作用,你可以看到:http://prntscr.com/6hvydi/direct - Thus Spoke Nomad
3个回答

1
最后我知道了问题所在。我把“输出路径”从“.\”改回“bin\”,然后它就可以工作了。我真的不知道为什么,但这对我来说是解决方案。也许有人以后可以为我们解释一下(我希望如此)。而且我认为,“重新开始”并不总是最好的方式 :)

0
尝试在页面顶部包含以下行:

<%@ Import Namespace="MonoLightTech.WebSite" %>

还是一样的。顺便说一下,我已经使用 MonoLightTech.WebSite 访问了命名空间中的类。 - Thus Spoke Nomad

0

我无法确定页面是否存在命名空间问题,但因为您明确将Style.cs命名空间命名为“MonoLightTech.Website”,所以您的Default.aspx可能仅存在于“MonoLightTech”命名空间中,因此您需要在Default.aspx页面顶部添加一个包含语句,例如:

<%@ Import Namespace="MonoLightTech.Website" %>

为了能够访问Style类中的字段。

仍然一样。我已经使用 MonoLightTech.WebSite 命名空间访问了类,但它可能还没有起作用。 - Thus Spoke Nomad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接