Что может заставить меня получить 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, долгожданный и тоскующий долгожданный желтый фон вернулся в окончание раздела "}".
Вуаля!
Может быть, отладчик умнее, чем я думал: он бастует не только тогда, когда код не компилируется, но и иногда, по-видимому, когда он (код или, как следствие, основанный на углероде двуногий, написавший его) кандидат в дурдом
Увы - я знаю, почему птица в клетке поет: он был пойман в ловушку, поддерживая код птичьего мозга, который управлял курятником!