【问题标题】:ASP.NET mvc: How to automatic fill the date field with today's date?ASP.NET mvc:如何用今天的日期自动填充日期字段?
【发布时间】:2011-01-23 05:24:35
【问题描述】:

假设模型具有日期时间数据类型。 所以在视图中会有一个空白字段要求您输入日期时间。

有没有办法用今天的日期/日期时间作为默认值填充这个 HTML 字段?

【问题讨论】:

  • 请定义今天。是今天在澳大利亚、今天在美国、今天在法国、今天在客户端浏览器上、今天在托管服务器的地方吗?

标签: asp.net asp.net-mvc asp.net-mvc-3


【解决方案1】:
model.SomeDateField = DateTime.Now();

return View(model);

【讨论】:

  • 这将填写服务器的当前日期/时间。如果他希望它默认为浏览器所在的时区,他需要使用一些 javascript/jquery 魔法
  • 这个问题没有问到时区差异。
  • 好吧,您不必在视图中预先填充它以使其工作。 Now 是一个属性而不是一个方法。
  • 我的意思是你不必在控制器中预先填充它就可以工作......实际上你不应该。
  • 最好将模型和控制器分开。 SomeDateField 最好在模型中设置。 '返回视图(模型);'属于控制器。
【解决方案2】:

简单

<%: Html.TextBox("date", DateTime.Now.ToShortDateString()) %>

或者使用 javascript 来获取客户端的浏览器日期。更好的是使用 jquery 的 datepicker 来获得漂亮的 UI 来选择日期。使用它,您还可以预填充默认日期:

/**
    Enable jquery UI datepickers
**/
$(document).ready(function () {
    $(function () {
        $(".date-select").datepicker({ dateFormat: 'dd.mm.yy' });
        $(".date-select").datepicker($.datepicker.regional['sl']);
    });
    $(function () {
        $("#someDateField").datepicker('setDate', new Date());
    });
});

【讨论】:

    【解决方案3】:

    想要添加我发现用 HTML5 中的 DateTime 数据类型生成的日期选择器填充日期选择器所需的内容(通过 value 属性中视图中的 razor),它是这样的:

    @Html.TextBoxFor(model => model.YourDateInModel, new { @id = "YourDateId", @type = "date", 
    @Value = DateTime.Now.ToString("yyyy'-'MM'-'dd") })
    

    请注意,ToString() 格式对于让它在 datepicker 字段中显示日期是必要的(它需要数据库格式)。

    来源:https://forums.asp.net/p/2154640/6320474.aspx?p=True&t=637376668781782563

    编辑:这最终导致数据库本身为空/空,因此我还必须将模型设置为今天日期的初始值(如上所述)。

    public DateTime YourDateInModel { get; set; } = DateTime.Now;
    

    在我的情况下,我需要两者。使用以下内容也可能会有所帮助:

    $("#YourDateId").prop("disabled", true);
    

    如果您使用 JQuery/Javascript 来防止更改适用的字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多