我的代码没有在 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>
}
// 这是我的控制器 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>
}