jquery - 如何在 ASP 形式的 MVC Core 上使用日期选择器

标签 jquery asp.net-core model-view-controller jquery-ui-datepicker

在我的 MVC 核心 Web 应用程序中,我没有在所有浏览器上看到日期选择器,所以我想使用 jQuery 日期选择器。

目前在我的模型中我有:

    [Required]
    [Display(Name = "RegisterDate")]
    //[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd hh:mm:ss}")]
    public override DateTime RegisterDate { get; set; }

在 .html 文件中我有:(这些只是一些代码)
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
  $( "#datepicker" ).datepicker();
} );
</script>
...
            <div class="form-group">
            <label asp-for="RegisterDate" class="control-label"></label>
            <input asp-for="RegisterDate" class="form-control" value="@DateTime.Now.ToString("yyyy-MM-ddThh:mm")" />
            <span asp-validation-for="RegistertDate" class="text-danger"></span>
        </div>

我的问题是如何让 jquery datepicker 处理这个问题?
由于对项目的某些依赖,我不想下载任何 NuGet 包。
我更喜欢使用 CDN。

在此先感谢您的帮助。

最佳答案

对于asp.net core,如果使用默认的MVC模板并且没有禁用Layout,则需要添加@section Scripts{} .

引用:

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/layout?view=aspnetcore-3.1#sections

还要确保输入的类型应该是文本以避免 Html5 默认日期选择器:

<div class="form-group">
    <label asp-for="RegisterDate" class="control-label"></label>
    <input asp-for="RegisterDate" id="datepicker" type="text" class="form-control" value="@DateTime.Now.ToString("yyyy-MM-ddThh:mm")" />
    <span asp-validation-for="RegisterDate" class="text-danger"></span>
</div>
@section Scripts
{
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script>
        $(function () {
            $("#datepicker").datepicker();
        });
    </script>
}

结果(我使用谷歌浏览器):

enter image description here

更新:

如果你想使用 datetimepicker,这里有一个像下面这样的工作演示:
@model Test
<div class="form-group">
    <label asp-for="RegisterDate" class="control-label"></label>
    <div class='input-group date' id='datepicker'>
        <input asp-for="RegisterDate" type="text" class="form-control" value="@DateTime.Now.ToString("yyyy-MM-ddThh:mm")" />
        <span class="input-group-addon">
            <span class="glyphicon glyphicon-calendar"></span>
        </span>
    </div>
    <span asp-validation-for="RegisterDate" class="text-danger"></span>
</div>

@section Scripts
    {
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.7.14/js/bootstrap-datetimepicker.min.js"></script>

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.7.14/css/bootstrap-datetimepicker.min.css">
    <script>
        $(function () {
            $('#datepicker').datetimepicker();
        });
    </script>
}

结果:
enter image description here

关于jquery - 如何在 ASP 形式的 MVC Core 上使用日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62049179/

相关文章:

php - 如何使用 php mysql jquery ajax 更新选择框

javascript - JS - 根据值属性隐藏选项

jquery - each() 循环内的 Ajax 调用不是异步的

c# - View 模型应该包含静态功能方法吗?

javascript - jQuery .each(index, item) 默认不提供 jQuery 对象

c# - 如何在get方法中传递类对象列表 - asp.net core 2.1

javascript - 在 ASP.NET Core MVC 应用程序中的 Controller 和 JavaScript 之间传递参数?

c# - 自托管 ASp.net core 2.2 应用程序,未找到 View 'Index'。搜索了以下位置

iphone - 在 MVC 中,您在哪里放置对模型类的引用?

testing - Controller 测试是功能测试吗?