web-dev-qa-db-ja.com

ASP.NETランタイムエラー:あいまいな一致が見つかりました

最近、私のチームはASP.NETプロジェクトを.NET 1.1から.NET 2.0に変換しました。これまでのところ、1つのWebページを除いて、すべてがかなり良好です。

これは、このページを開こうとしたときに表示されるエラーメッセージです。

「/」アプリケーションでのサーバーエラー。

パーサーエラーの説明:この要求を処理するために必要なリソースの解析中にエラーが発生しました。以下の特定の解析エラーの詳細を確認し、ソースファイルを適切に変更してください。

パーサーエラーメッセージ:あいまいな一致が見つかりました。

ソースエラー:

1行目:<%@ Control Language = "c#" AutoEventWireup = "false" Codebehind = "Template.ascx.cs" Inherits = "eReq.Web.WebControls.Template.Template" TargetSchema = "http://schemas.Microsoft。 com/intellisense/ie5 "%> 2行目:3行目:関数ExpandCollapse_Template(inBtn、inSection、inSectionID){

ソースファイル:/WebControls/Template/Template.ascx
ライン1

-------------------------------------------------- ------------------------------バージョン情報:Microsoft .NET Frameworkバージョン:2.0.50727.3053; ASP.NETバージョン:2.0.50727.3053

クラスの名前を変更してファイル名を変更してみましたが、機能しませんでした。

誰かこれについて何か考えがありますか?

19
natch3z

コンポーネントの名前が異なるために表示される可能性がありますか?たとえば、Button1とbutton1は、大文字と小文字を区別してコンパイルされますが、大文字と小文字を区別せずに実行されます。

38
x2.

ASCXファイルで、すべてのコントロールを調べ、そのIDを変更します。例えば、

<asp:TextBox id="foo" />

に変更

<asp:TextBox id="foo1" >

おそらく、ascxファイルのプロパティと一致するIDを持つコントロールがあるため、コンパイラーがインスタンス変数を衝突させようとしているとき。

12
Will

私は同じ問題を抱えていて解決しましたが、解決策はコードの背後をチェックしており、同じ名前のコントロールがいくつか見つかります:

protected Button Home;

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

1行を削除するか、コメントにする必要があります。

3

選択した答えは正しいようです。

私の場合、大文字と小文字の使い方が異なるだけで、aspxファイルのコントロールと同じ名前の分離コード内の変数を使用していることがわかりました。

1
SoliQuiD

同じDLLへの1.1および2.0の参照についてweb.configをトロールします。私がこれを得たほとんどの場合、それはSystem.Web.Extensionsでした。

それが失敗した場合は、Pagesの@registersも確認してください。

頑張ってください(見つけるのは楽しいバグではありません!)

ダン

0
Daniel Elliott