我的代码没有在 Asp.Net Mvc 的 _Layout 中呈现 @scripts 部分,即使我 运行 它也会给出失败的弹出窗口

My Code is not rendering @scripts section in the _Layout in Asp.Net Mvc and when even i run the it give failed popup

// 这是我的控制器 class 我正在使用我在 Asp.Net mvc 中制作时间 table .... 每次我 [=22] 我对我的控制器的看法=] 它给出了一个失败的弹出窗口,我不确定,但我认为我的 _Layout 或其他东西的问题可能是它没有在 Asp.net Mvc 5 [=13= 中加载 jquery 的问题]

public class TutorController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
        public JsonResult GetEvents()
        {
            using (TutorHubContext dc = new TutorHubContext())
            {
                var events = dc.TimeTables.ToList();
                return new JsonResult { Data = events, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
            }
        }
    }



@{
    ViewBag.Title = "Index";
}
<!DOCTYPE html>
<html>
<head>

</head>
<body>

    <h2>Index</h2>

    <div id="calender"></div>


    <link href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.css" rel="stylesheet" />
    <link href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.print.css" rel="stylesheet" media="print" />
    @section Scripts {
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.js"></script>

    <script>
        $(document).ready(function () {

            events = [];
            $.ajax({
                type: "GET",
                url: "/Tutor/GetEvents",
                success: function (data) {
                    $.each(data, function (i, v) {
                        events.push({
                            eventID: v.EventID,
                            title: v.Subject,
                            description: v.Description,
                            start: moment(v.Start),
                            end: v.End != null ? moment(v.End) : null,
                            color: v.ThemeColor,
                            allDay: v.IsFullDay
                        });
                    })
                    GenerateCalender(event)
                },
                error: function (error) {
                    alert('failed');
                }
            })

            function GenerateCalender(events) {
                $('#calender').fullCalendar('destroy');
                $('#calender').fullCalendar({
                    contentHeight: 400,
                    defaultDate: new Date(),
                    timeFormat: 'h(:mm)a',
                    header: {
                        left: 'prev,next today',
                        center: 'title',
                        right: 'month,basicWeek,basicDay,agenda'
                    },
                    eventLimit: true,
                    eventColor: '#378006',
                    events: events
                })
            }
        })

    </script>
  }
</body>
</html>

// 请任何人帮助我

这里看起来有些可疑。你说那是你的看法;但看起来它包含完整的 <html> ... </html> 文档。

您的 _Layout.cshtml 应该包含外部 <html> ... </html> 位,并且在该文件中您需要调用 @RenderSection("Scripts", required: false).

稍后在您看来,您应该像现在一样拥有 @section Scripts { ... }

明确地说,我会让我的 _Layout.cshtml 包含以下内容(注意,根据@Stephen Muecke 的建议,我添加了 jQuery):

<!DOCTYPE html>
<html>
<head>
    <!-- common css here -->

    <!-- page specific css here -->
    @RenderSection("Css", required: false)
</head>
<body>
    @RenderBody()
    <!-- common scripts here -->
    <script src="//code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>

    <!-- page specific scripts here -->
    @RenderSection("Scripts", required: false)
</body>
</html>

那么我的 {View}.cshtml 将包含:

<h2>Index</h2>

<div id="calender"></div>

@section Css {
    <link href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.css" rel="stylesheet" />
    <link href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.print.css" rel="stylesheet" media="print" />
}
@section Scripts {
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.js"></script>
<script>
    $(document).ready(function () {
        events = [];
        $.ajax({
            type: "GET",
            url: "/Tutor/GetEvents",
            success: function (data) {
                $.each(data, function (i, v) {
                    events.push({
                        eventID: v.EventID,
                        title: v.Subject,
                        description: v.Description,
                        start: moment(v.Start),
                        end: v.End != null ? moment(v.End) : null,
                        color: v.ThemeColor,
                        allDay: v.IsFullDay
                    });
                })
                GenerateCalender(event)
            },
            error: function (error) {
                alert('failed');
            }
        })

        function GenerateCalender(events) {
            $('#calender').fullCalendar('destroy');
            $('#calender').fullCalendar({
                contentHeight: 400,
                defaultDate: new Date(),
                timeFormat: 'h(:mm)a',
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,basicWeek,basicDay,agenda'
                },
                eventLimit: true,
                eventColor: '#378006',
                events: events
            })
        }
    })
    </script>
}