Кто-нибудь получил опыт использования jquery ui datepicker с Razor @Html.TextBoxFor(...)
Я пытаюсь разрешить пользователю выбирать дату с использованием метки Razor для генерации текстового поля, при нажатии будет отображаться Datepicker из пользовательского интерфейса jquery. Я не уверен, если:
@using (Html.BeginForm("New","Order"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<fieldset>
@Html.LabelFor(m => m.OrderInfo.installdate)
@Html.TextBoxFor(m => m.OrderInfo.installdate, new {@id="dp"})
</fieldset>
}
<script type="text/javascript">
$(document).ready(function () {
$("#dp").datepicker();
});
</script>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
Ran в этом порядке, и неважно, измените, не можете отобразить дату.
Можно ли это сделать так?
Убедитесь, что вы связали ресурсы
bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-{version}.js");
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include("~/Scripts/jquery-ui-{version}.js");
bundles.Add(new StyleBundle("~/bundles/themes/base").Include(
"~/content/themes/base/jquery.ui.core.css",
"~/Content/themes/base/jquery.ui.datepicker.css",
...
);
Включите их в надлежащем порядке
Layout.cshtml
<html>
<head>
@Styles.Render("~/bundles/themes/base")
</head>
<body>
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@RenderSection("page_scripts", required: false)
</body>
Теперь View... Поскольку скрипты были включены в макет, представление не нуждается в этом.
@Html.TextBoxFor(m => m.installdate, new { @id="dp" })
@section page_scripts {
<script>
$(document).ready(function () {
$("#dp").datepicker({ ... });
});
</script>
}
Если у вас его нет на макете или не использовать
@Html.TextBoxFor(m => m.installdate, new { @id="dp" })
@Styles.Render("~/bundles/themes/base")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
<script>
$(document).ready(function () {
$("#dp").datepicker({ ... });
});
</script>