代码之家  ›  专栏  ›  技术社区  ›  Nick Fleetwood

ASP CORE HTML Helper未设置日期的默认值

  •  0
  • Nick Fleetwood  · 技术社区  · 4 年前

    我有一个表单,我希望日期默认为今天的日期。

    <div class="form-group">
        <label asp-for="ThrDate" class="control-label"></label>
        <input asp-for="ThrDate" class="form-control" value="@DateTime.Now" 
               type="date" asp-format="{0:yyyy-MM-dd HH:mm}" />
        <span asp-validation-for="ThrDate" class="text-danger"></span>
    </div>
    

    我的研究表明这是可行的,但价值并没有真正传递出去。哦,我还是想让选约会的人工作。

    谢谢

    0 回复  |  直到 4 年前
        1
  •  1
  •   Yinqiu    4 年前

    您可以尝试以下代码:

    <div class="form-group">
        <label asp-for="ThrDate" class="control-label"></label>
        <input asp-for="ThrDate" class="form-control" id="date_info" type="date" asp-format="{0:yyyy-MM-dd}" />
        <span asp-validation-for="ThrDate" class="text-danger"></span>
    </div>
    @section Scripts{ 
    <script>
    $(document).ready(function () {
        var time = new Date();
        var day = ("0" + time.getDate()).slice(-2);
        var month = ("0" + (time.getMonth() + 1)).slice(-2);
        var today = time.getFullYear() + "-" + (month) + "-" + (day);
        $('#date_info').val(today);
    })
    </script>
    }
    

    结果: enter image description here

    如果你想用 datetimepicker ,您可以使用以下代码:

    <div class="form-group">
    <label asp-for="ThrDate" class="control-label"></label>
    <div class="input-group date" id="datetimepicker1" data-target-input="nearest">
        <input class="form-control datetimepicker-input" asp-for="ThrDate" type="text" data-target="#datetimepicker1" />
        <div class="input-group-append" data-target="#datetimepicker1" data-toggle="datetimepicker">
            <div class="input-group-text"><i class="fa fa-calendar"></i></div>
        </div>
    </div>
    </div>
    @section Scripts{
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.0.1/js/tempusdominus-bootstrap-4.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.0.1/css/tempusdominus-bootstrap-4.min.css" />
    <script>
        $('#datetimepicker1').datetimepicker({    
            format: 'DD/MM/YYYY HH:mm',
            defaultDate: new Date(), 
        });
    </script>
    }
    

    结果: enter image description here

        2
  •  0
  •   Nick Fleetwood    4 年前

    另一篇帖子给了我们答案: Set default input value Datetime.Now on create view MVC ASP.NET Core 2?

    但它在评论中,所以我将在这里详细介绍。

    在控制器的GET中,设置模型项的值,例如:

    PostThr postThr = new PostThr { ThrDate = DateTime.Now };
    
    return view(model);
    

    执行此操作后,控制器中指定的值将传递给视图。不需要修改视图。

    旁注:我现在似乎对值的格式有问题,但这是富裕国家的问题,或者另一个问题。

    向斯蒂芬·穆克喊一声!