ASP.NET, как решить CS1513:} ожидаемая ошибка на странице - PullRequest
11 голосов
/ 23 февраля 2012

Я получаю ошибку во время выполнения при просмотре моей страницы 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 

Я не могу найти пропавших без вести} в моем исходном коде, и эта ошибка происходит в файлах сгенерированного кода, которые существуют в каталоге временных файлов ASP.NET. Как я могу проследить это до строки кода, которая на самом деле искажена на моей странице или пользовательских элементов управления на моей странице?

Ответы [ 6 ]

14 голосов
/ 13 ноября 2013

Если код ошибки связан со следующим:

Имя переменной совпадает с зарезервированным словом, тогда вы можете переименовать переменную.

Сегмент кода, например:

@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 -->
}

Удалите апостроф из комментария в разделе.

Если этоНи в одном из этих конкретных случаев вы не можете попытаться определить местонахождение ошибки, применив сокращение источника.Удалите / вырежьте / закомментируйте фрагменты кода, пока вы не сможете надежно выключить и снова включить ошибку.Код, который включает ошибку, скорее всего, виновник, если это не одна из вышеперечисленных ситуаций.

2 голосов
/ 23 февраля 2012

Посмотрите в разметке (aspx или ascx) блоки вроде:

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

   markup(controls, html etc)

<% } %>

Любая открытая скобка { должна быть закрыта другой скобкой }.

Эти страницы или элементы управления компилируются ASP .Net при первом запросе. Visual Studio не компилирует aspx or ascx файлов.
Если проект имеет тип «Веб-сайт», Visual Studio компилирует файлы aspx/ascx, но если проект имеет тип «Веб-приложение», Visual Studio не «компилирует» разметку (она не генерирует соответствующие классы для aspx/ascx разметка)

0 голосов
/ 25 октября 2016

У меня похожая проблема, и я могу найти ее только после журнала проб и ошибок.

Ошибка, которую я сделал, состояла в том, чтобы добавить '@' к переменным внутри цикла foreach, который начинался с:

@foreach
0 голосов
/ 29 августа 2014

На моем сайте проблема была вызвана блоком кода, который выглядел следующим образом:

            @{  
                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>
                }
            }

Я не уверен, почему проблема была вызвана вложением.Это может быть ошибка в компиляторе.

0 голосов
/ 23 февраля 2012

попробуй скомпилировать его в visual studio.Я думаю, что это также покажет, где точная строка кода, который имеет неполные фигурные скобки.

ошибка компиляции cs1513

0 голосов
/ 23 февраля 2012

Как показывает ошибка, вам не хватает закрывающей фигурной скобки '}'

Ознакомьтесь с документацией по ошибкам компилятора msdn:

Как в примере на MSDN:

// the below will cause CS1513 since namespace is missing '}'
namespace y    
{
   class x
   {
      public static void Main()
      {
      }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...