Я определил следующий шаблон редактора (в разделе «Представления» / «Общий ресурс» / «Редактор»):
@model System.DateTime?
<div class="editor-label">
@Html.Label("")
</div>
<div class="editor-field">
@Html.TextBox("", String.Format("{0:MM/dd/yyyy}", (Model == DateTime.MinValue) ? null : Model), new { @class = "text" })
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#@ViewData.ModelMetadata.PropertyName").datepicker({
uiLibrary: 'bootstrap4',
gotoCurrent: true
});
});
</script>
В _Layout.cs html у меня есть следующие библиотеки:
<script src="~/lib/jquery/dist/jquery.js" type="text/javascript"></script>
<script src="~/lib/jqueryui/jquery-ui.min.js" type="text/javascript"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap-datepicker.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
Наконец, в Index.cs html у меня есть следующий элемент управления вводом:
@Html.EditorFor(m => m.MyDate, new { htmlAttributes = new { @class = "form-control datepicker" } });
(MyDate определен как DateTime
в модели)
Я подтвердил что редактор фактически загружает мой пользовательский редактор; Тем не менее, я получаю следующую ошибку в окне консоли браузера:
jquery.js:3818 jQuery.Deferred exception: $(...).datepicker is not a function TypeError: $(...).datepicker is not a function
at HTMLDocument.<anonymous> (https://localhost:44346/:54:26)
at mightThrow (https://localhost:44346/lib/jquery/dist/jquery.js:3534:29)
at process (https://localhost:44346/lib/jquery/dist/jquery.js:3602:12) undefined
jQuery.Deferred.exceptionHook @ jquery.js:3818
jquery.js:3827 Uncaught TypeError: $(...).datepicker is not a function
at HTMLDocument.<anonymous> ((index):54)
at mightThrow (jquery.js:3534)
at process (jquery.js:3602)
Средство выбора даты не отображается должным образом (или, действительно, работает). Я предполагаю, что эта ошибка является причиной, но я не могу понять, почему datepicker
не является функцией. Я проверил, и он присутствует в js/bootstrap-datepicker.min.js
.
. При поиске проблемы несколько человек сказали, что она может быть ниже порядка ссылок на сценарии, но я попробовал их в различные разные заказы. Кто-нибудь может сказать мне, в чем может быть проблема?