为什么当我将 Response.Write 添加到该方法时出现错误



在我的 c# 代码中,我添加了响应命令来显示属性:

 var c = "some text";
 Response.Write(string.Format("{0}", c));
 Response.End();

这是方法:

    public Dictionary<string, string> GetMarkupFeatures()
    {
        //Hashtable features = new Hashtable();
        Dictionary<string, string> features = new Dictionary<string, string>();
        MgResourceIdentifier featureSourceId = new MgResourceIdentifier(libraryPath + this.GetMarkupName() + ".FeatureSource");
        var opt = new MgFeatureQueryOptions();
        var filter = GetParameter(args, "WHERE");
        if(!string.IsNullOrEmpty(filter))
        {
            opt.SetFilter(filter);
        }
        var ftr = features.OrderBy(x=>x.Value).ToDictionary(x=>x.Key, x=>x.Value);
         var c = "some text";
            Response.Write(string.Format("{0}", c));
            Response.End();
        return ftr; 
    }

当我运行代码时,出现此错误:

说明:编译处理此请求所需的资源时出错。请查看以下特定错误详细信息并相应地修改源代码。

编译器错误消息:CS0038:无法通过嵌套类型"ASP.data_editdata_aspx"访问外部类型"System.Web.UI.Page"的非静态成员。数据编辑器'

在此行上:

  Response.Write(string.Format("{0}", c));

知道为什么我在添加响应命令时会出现上述错误吗?

您收到该错误是因为您正在尝试从嵌套类访问类的字段。如本文档所述:

中的字段不会自动对嵌套类可用。 若要对嵌套类可用,该字段必须是静态的。 否则,必须创建外部类的实例。

要解决此问题,您有 3 个选项:

  1. 将要访问的方法/字段设置为静态
  2. 使用继承而不是嵌套类。
  3. 创建外部类的实例。

查看此帖子以获取更多信息。

最新更新