【问题标题】:Parser Error Message: Ambiguous match found解析器错误消息:找到不明确的匹配项
【发布时间】:2010-08-19 10:24:28
【问题描述】:

我在 Visual Studio 2008 中运行一个 Web 应用程序.. 加载特定页面时出现此错误.. 帮我继续.... 谢谢你.....

“/PSS.NET”应用程序中的服务器错误。
解析器错误
说明:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息并适当地修改您的源文件。

解析器错误消息:找到不明确的匹配项。

来源错误:

<%@ Register TagPrefix="uc1" TagName="CtrlButtonControl" Src="../../WebControls/CtrlButtonControl.ascx" %>  
<%@ Page language="c#" Codebehind="SPSearchFromToDtStorLocMatTypRank.aspx.cs" AutoEventWireup="false" Inherits="Sdi.Pss.Reports.SP.SPSearchFromToDtStorLocMatTypRank" %>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

源文件:/PSS.NET/Reports/SP/SPSearchFromToDtStorLocMatTypRank.aspx 行:1

版本信息:Microsoft .NET Framework 版本:2.0.50727.3615; ASP.NET 版本:2.0.50727.3614

【问题讨论】:

标签: asp.net


【解决方案1】:

我有同样的问题,它解决了,解决方案是检查你的代码,你会发现几个同名的控件:

protected Button Home;

protected System.Web.UI.HtmlControls.HtmlAnchor home; 

你必须删除一行或评论它。

非常感谢。

【讨论】:

  • +1 为您解答。 1 个小更正:这并不一定意味着您有 2 个具有相同名称的控件,仅 2 个变量就足以解决此错误。因此,例如 1 个名为 Home 的按钮和一个名为 Home 的变量。
【解决方案2】:

最近我遇到了一个类似的问题,我有重复的名字,但在不同的情况下。解决方案已成功编译,但我在其中一个 .aspx 页面中遇到了问题,其中发现了不明确的代码错误。

我解决了它使用- 1.进入解决方案中的.aspx页面,右键 2.点击“检查可访问性”,会打开一个对话框,勾选所有并点击确定 3. 现在在下部窗格中(我们可以看到所有错误),将出现警告,指出导致这种歧义的控制/名称。

希望对你有帮助!!

【讨论】:

    【解决方案3】:

    在我的例子中,这两个控件位于不同的文件中,一个位于 .aspx 页面 (StartDate) 中,一个位于代码隐藏文件 (startDate) 中。编译器没有抓住它,因为它们都是部分类。在 startDate 中添加下划线来解决它。

    【讨论】:

      【解决方案4】:

      当我在我的班级中声明了 2 个字段时,我遇到了同样的错误:

      public partial class Page : System.Web.UI.Page
      {
          private string headerText;
          private string resultText;
      
          protected void Page_Load(object sender, EventArgs e)
          {
          }
      }
      

      这导致了错误,所以我只是将这些字符串更改为修复问题的属性:

      public partial class Page : System.Web.UI.Page
      {
          private string HeaderText { get; set; }
          private string ResultText { get; set; }
      
          protected void Page_Load(object sender, EventArgs e)
          {
          }
      }
      

      【讨论】:

        【解决方案5】:

        也许您在两个不同的 ContentPlaceHolder 中有两个同名的控件。 simular ids 只有在区分大小写的情况下才有可能。例如 btnSave 和 btnsave。

        <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
           <asp:Button ID="btnSave" runat="server" />
        </asp:Content>
        
        <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
            <asp:Button ID="btnsave" runat="server" />
        </asp:Content>
        

        【讨论】:

          【解决方案6】:

          此错误可能是由多种因素造成的。例如,在我的基础实体和驱动类中的实体类属性中,出现了这个错误,因为它们具有相同的名称并且编译器会感到困惑!因此,请仔细查看您的代码,以检查是否有任何错误输入或命名违规的迹象。

          【讨论】:

            【解决方案7】:

            遇到了同样的问题。签入YourPage.aspx.designer.cs 是否有像下面这样包装页面类的命名空间声明

            namespace YourProject.Stuff.Stuff
            {
                public partial class YourPage {...}
            }
            

            【讨论】:

              【解决方案8】:

              就我而言,这是因为: 我创建了一个空项目。然后添加一个 Web 表单。得到那个错误。 我们应该在创建 Web 表单项目时选中 WebForm 复选框。

              【讨论】:

              • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
              猜你喜欢
              • 2019-07-19
              • 2011-10-24
              • 2017-06-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-07-05
              • 2020-06-06
              • 2019-09-02
              相关资源
              最近更新 更多