Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core mvc 日期选择器不可见,且日期在编辑表单中_Asp.net Core Mvc - Fatal编程技术网

Asp.net core mvc 日期选择器不可见,且日期在编辑表单中

Asp.net core mvc 日期选择器不可见,且日期在编辑表单中,asp.net-core-mvc,Asp.net Core Mvc,我正在尝试做一个editForm,它从数据库中正确地获取所有值。问题在于,要么日期可见,要么只是日期选择器。“查看页面源显示了正确的值” 这就是我在模型中显示属性的方式 [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] public DateTime DateOfBirth { get; set; } 我尝试了输入标记和@Html标记,两

我正在尝试做一个editForm,它从数据库中正确地获取所有值。问题在于,要么日期可见,要么只是日期选择器。“查看页面源显示了正确的值” 这就是我在模型中显示属性的方式

   [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
        public DateTime DateOfBirth { get; set; }
我尝试了输入标记和@Html标记,两者都给出了不同的结果 仅使用输入标记,它仅显示具有dd/mm/yyyy的日期选择器

                    <div class="form row">
                        <div class="form-group col-md-6">
                            <label asp-for="DateOfBirth" class="col-auto col-form-label small form-text">Date Of Birth</label>
                            <div class="col">
                                <input asp-for="DateOfBirth" class="form-control ui-datepicker" type="date" placeholder="Date of Birth" value="@Model.DateOfBirth.ToShortDateString()" asp-format="dd/mm/yyyy" />

出生日期
使用@Html,它只显示正确的日期,而不是日期选择器

  @*@{
                                    string parameterValue = @Model.DateOfBirth.ToShortDateString();
                                }
                                @Html.TextBoxFor(m => parameterValue, new { @class = "form-control ui-datepicker" })*@
                                <span asp-validation-for="DateOfBirth"></span>
                            </div>
                        </div>

@*@{
字符串参数value=@Model.DateOfBirth.ToSortDateString();
}
@TextBoxFor(m=>parameterValue,新的{@class=“form control ui datepicker”})*@

如何在编辑表单中同时显示日期和日期选择器?

将输入更改为此,解决了问题

`

只显示输入标记,它只显示带有dd/mm/yyyy的日期选择器

                    <div class="form row">
                        <div class="form-group col-md-6">
                            <label asp-for="DateOfBirth" class="col-auto col-form-label small form-text">Date Of Birth</label>
                            <div class="col">
                                <input asp-for="DateOfBirth" class="form-control ui-datepicker" type="date" placeholder="Date of Birth" value="@Model.DateOfBirth.ToShortDateString()" asp-format="dd/mm/yyyy" />
  • 这是因为输入的类型指定为日期。
    • type=“日期”
  • 关于
    ,您需要知道:
  • 显示的日期格式将与实际值不同-显示的日期根据用户浏览器的区域设置进行格式化,但解析的值始终是格式
  • 因此,当您的输入值不是yyyy-mm-dd格式时,将不会正确显示
  • 如何在编辑表单中同时显示日期和日期选择器

  • 我建议您结合jquery Datepicker来满足您的需求
  • 我写了一个例子,你可以参考一下。
  • 您需要引用jqueryui.cssjqueryui.js文件。
    • 您可以通过右键单击并选择添加->客户端库安装
  • 型号
  • 控制器
  • 查看
    • @model WebApplication24.Models.TestDate
      @节脚本{
      $(函数(){
      $(“#DateOfBirth”).datepicker({dateFormat:'dd/mm/yy'});
      });
      }
      
  • 结果

  • 谢谢你的解释!!
    public IActionResult Index()
    {
      TestDate model = new TestDate {  DateOfBirth=DateTime.Now};
      return View(model);
    }
    
    @model WebApplication24.Models.TestDate
    <link href="~/jqueryui/jquery-ui.css" rel="stylesheet" />
    <input asp-for="DateOfBirth" type="text" class="form-control" placeholder="Date of Birth" />
    @section scripts{
        <script src="~/jqueryui/jquery-ui.js"></script>
        <script>
            $(function () {
                $("#DateOfBirth").datepicker({ dateFormat: 'dd/mm/yy' });
            });
        </script>
    }