12

ブラウザでASP.NETページを表示すると、実行時にエラーが発生します。ビルドエラーは発生しませんが、実行時に次のコンパイラエラーが発生します。

コンパイルエラー

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

Compiler Error Message: CS1513: } expected

Source Error:


Line 329:            #line hidden
Line 330:            __output.Write("\r\n\t\t\t</div>\r\n\t\t");
Line 331:        }
Line 332:        
Line 333:        private System.Web.UI.Control __BuildControl__control7() {

Source File: c:\Windows\Microsoft.NET\Framework\v1.1.4322\
    Temporary ASP.NET Files\xxxxxxxx\450ffa78\d46d847d\
    k1gsz9dj.0.cs    Line: 331 

ソースコードで欠落している}を見つけることができません。このエラーは、TemporaryASP.NETFilesディレクトリに存在する生成されたコードファイルで発生しています。これを、ページまたはページのユーザーコントロールで実際に不正な形式になっているコード行まで追跡するにはどうすればよいですか?

4

6 に答える 6

16

エラーコードが次のように関連している場合:

予約語と同じ変数名を使用すると、変数の名前を変更できます。

次のようなコード セグメント:

@model MyModel
{
    var appname = @Model.Apps.FirstOrDefault(x => x.ID == Model.SelectedApp);
}

前に来る「@」を削除Model.Apps.FirstOrDefault(x => x.ID == Model.SelectedApp)

次のようなコード セグメントまたはセクションの使用法:

@section{ 
    <!-- hiiii it's not about an error -->
}

セクションのコメントからアポストロフィを削除します。

これらの特定のケースのいずれでもない場合は、ソース削減を適用して、エラーが生成された場所を突き止めることができます。エラーを確実にオフまたはオンにできるようになるまで、コードの一部を削除/カット/コメントアウトします。上記の状況のいずれでもない場合、エラーをオンにするコードが原因である可能性があります。

于 2013-11-13T09:05:44.207 に答える
3

次のようなブロックのマークアップ (aspx または ascx) を調べます。

<% ... some C# code.... { %>

   markup(controls, html etc)

<% } %>

開いているブラケット{は、別のブラケットで閉じる必要があります}

これらのページまたはコントロールは、最初に要求されたときに ASP .Net によって 1 回コンパイルされます。 aspx or ascxVisual Studio はファイルをコンパイルしません。
プロジェクトが「Web サイト」タイプの場合、Visual Studio はaspx/ascxファイルをコンパイルしますが、プロジェクトが「Web アプリケーション」タイプの場合、Visual Studio はマークアップを「コンパイル」しません (マークアップに対応するクラスを生成しませんaspx/ascx) 。

于 2012-02-23T05:42:04.577 に答える
0

同様の問題が発生しましたが、試行錯誤のログの後にのみ見つけることができました。

私が犯したエラーは、次で始まる foreach ループ内の変数に「@」を追加することでした。

@foreach
于 2016-10-25T14:48:47.023 に答える
0

私のサイトでは、次のようなコード ブロックが問題の原因でした。

            @{  
                var currentNode = @linkedList.Find(@CurrentPage);
                if (@currentNode.Next != null)
                {
                    var next = @currentNode.Next;
                    <li>
                        @next.Name
                    </li>
                }
                if (@currentNode.Previous != null)
                {
                    var prev = @currentNode.Previous;
                    <li>
                        @prev.Name
                    </li>
                }
            }

ネスティングが原因で問題が発生した理由はわかりません。これは、コンパイラのバグである可能性があります。

于 2014-08-29T08:03:35.137 に答える
-1

エラーが示唆しているように、閉じ中括弧'}'がありません

msdnコンパイラエラーのドキュメントをご覧ください。

MSDNの例のように:

// the below will cause CS1513 since namespace is missing '}'
namespace y    
{
   class x
   {
      public static void Main()
      {
      }
   }
于 2012-02-23T04:39:34.280 に答える
-1

Visual Studio でコンパイルしてみてください。中括弧が不完全なコードの正確な行も表示されると思います。

コンパイル エラーcs1513

于 2012-02-23T05:10:19.297 に答える