Разделы не поддерживаются в партиалах, и ваши скрипты никогда не включаются в HTML, возвращаемый клиенту.В любом случае, сценарии никогда не должны быть частичными (что и есть EditorTemplate
) - вы генерируете встроенные сценарии, затрудняя отладку и риск, включая несколько экземпляров сценариев.
Удалите @section Scripts{ ... }
код из вашего EditorTemplate
и переместите его в основной вид или его макет.Чтобы сделать это немного более гибким, я рекомендую дать входам имя класса и использовать его в качестве селектора jQuery, а не ссылаться на каждого отдельного id
(и, следовательно, требуется только один скрипт).
Кроме того, вы никогда не должны устанавливать атрибут value
при использовании методов HtmlHelper
.Методы правильно генерируют value
из ModelState
, ViewData
и, наконец, свойство модели в этом порядке, и, установив атрибут value
, вы нарушаете привязку модели.Вместо этого установите значения в методе GET перед передачей модели в представление.
Ваш код для создания средства выбора даты должен быть просто
@Html.EditorFor(m => m.StartTime, new { htmlAttributes = new { @class = "form-control datetimepicker" } })
или, проще,
* 1021.*
и затем вы можете задать ширину
.datetimepicker {
width: 100px;
}
, и скрипт в представлении или макете будет просто
$('.datetimepicker').datetimepicker({
format: 'LT',
showClose: true,
showClear: true,
toolbarPlacement: 'top',
stepping: 15,
});
Также не ясно, почему вы хотите попробоватьудалить проверку на стороне клиента, используя .removeAttr("data-val-date")
, и это указывает на проблему с вашим дизайном.Также кажется, что вы хотите выбрать только время, в этом случае ваша собственность должна быть TimeSpan
.