Я реализую полный календарь (см. fullcalendar.io ) в представлении .cshtml в приложении ASP.NET MVC.Я вставил весь код JavaScript в файл index.cshtml
, но он не показывал календарь в браузере.Файлы, необходимые для полного календаря, также импортируются в файл index.cshtml
.
Код
@{
ViewData["Title"] = "Home Page";
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="@Url.Content("~/calendar-js/jquery.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/calendar-js/jquery-ui.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/calendar-js/moment.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/calendar-js/fullcalendar.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/calendar-js/fullcalendar.js")" type="text/javascript"></script>
<link href="@Url.Content("~/calendar-css/fullcalendar.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/calendar-css/fullcalendar.min.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/calendar-css/fullcalendar.print.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/calendar-css/fullcalendar.print.min.css")" rel="stylesheet" type="text/css" />
Я получил
«Ошибка типа: $ (...). FullCalendar не является функцией»
ошибка в консоли браузера.
Я обнаружил, что это проблема с jQuery, и я видел на вкладке Network моего браузера, что jQuery загружается дважды.Сначала файл jQuery, на который я ссылался в моем файле .cshtml , и другой файл jQuery, который, по-видимому, необходим в файле _LayOut.cshtml
:
<environment include="Development">
<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
</environment>
<environment exclude="Development">
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.0.min.js"
asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
asp-fallback-test="window.jQuery"
crossorigin="anonymous"
integrity="sha384-K+ctZQ+LL8q6tP7I94W+qzQsfRV2a+AfHIi9k8z8l9ggpc8X+Ytst4yBo/hH+8Fk">
</script>
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/bootstrap.min.js"
asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"
asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"
crossorigin="anonymous"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa">
</script>
<script src="~/js/site.min.js" asp-append-version="true"></script>
</environment>
Я пытался:
- для запуска
index.cshtml
без ссылки jQuery этого файла.Это только усугубило ситуацию, потому что в консоли браузера появились ошибки, похожие на jQuery. - Чтобы запустить файл
index.cshtml
со всеми ссылками jQuery, но я удалил ссылку jQuery в _LayOut.cshtml
файл.Полный календарь показался, но странным образом.Итак, мой вывод заключается в том, что эти 2 ссылки jQuery конфликтуют друг с другом.Несмотря на то, что показался полный календарь, я не думаю, что это правильно делать так. - CDN ссылки вместо локальных файлов.Не получилось.
Как решить эту проблему конфликтующего импорта jQuery?