Что может заставить меня получить YSOD: "Блоки секций не могут быть вложенными. Разрешается только один уровень блоков секций."?

Я действительно вижу, что код над разделом, помеченным как подозрительный выше, неверен, потому что закрывающий "}" не желтый.

В верхней части страницы у меня есть некоторые директивы использования:

@using System.Configuration
@model CCRReporter.Models.TLISReportModel

@{
    ViewBag.Title = "Transaction Line Item Sales Report Criteria";
    ViewBag.PageName = ViewBag.Title;
}

... с последующим разделом скрипта:

@section ScriptContent
{
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript" defer> </script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript" defer> </script>
    // etc.

<script type="text/javascript">
        var bSubmitting = false;
        var WantsFocus = null;
        var bFocusing = false;
        var report_parms = null;

        function SetTabOrder() {
            $.each([
                "#BeginDate",
                "#BeginTime",
                "#EndDate",
                "#EndTime",
                "#InputSite-input",
                "#cmdAddSite",
                "#InputDept-input",
                "#cmdAddDept",
                "#IncludeDepts",
                "#ExcludeDepts",
                "#UPCBeginsWith"],
            function (i, n) {
                $(n).prop("taborder", "y");
            });
        }

        // ready handler
        $(function() {
    // etc.

... этот jQuery был проверен с помощью jsfiddle/jshint.

Вот YSOD:

Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Section blocks ("@section Header { ... }") cannot be nested.  Only one level of section blocks are allowed.

Source Error:

Line 402:}
Line 403:
Line 404:@section MainHead
Line 405:{
Line 406:    <link href="@Url.Content("http://code.jquery.com/ui/1.9.2/themes/smoothness/jquery-ui.css")" rel="stylesheet" type="text/css" />

Source File: /CCRReporter/Views/CCRCriteria/TLISReport.cshtml    Line: 404

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

1 ответ

Решение

Я все еще не мог найти никакой синтаксической проблемы с кодом, но при ближайшем рассмотрении логика кода казалась довольно странной (комбинация причудливого и жуткого):

У него был обработчик нажатия submit_button, который вызывал $("form"). Submit();

Если кнопка submit_button действительно является кнопкой отправки (input type="submit") - и это!, зачем это нужно? Не только это, но и функция, вызываемая из обработчика щелчка, была объявлена ​​следующим образом:

$("#form0").submit(function() {

form0? Что за Hec Ramsey?!? Там нет "Form0" нигде на странице...

После того, как я переместил код для отправки из обработчика Form0 (который, я признаю, я ранее перешел от выбора фантома 'form0' к 'form') к обработчику submit_button, долгожданный и тоскующий долгожданный желтый фон вернулся в окончание раздела "}".

Вуаля!

Может быть, отладчик умнее, чем я думал: он бастует не только тогда, когда код не компилируется, но и иногда, по-видимому, когда он (код или, как следствие, основанный на углероде двуногий, написавший его) кандидат в дурдом

Увы - я знаю, почему птица в клетке поет: он был пойман в ловушку, поддерживая код птичьего мозга, который управлял курятником!

Другие вопросы по тегам