【问题标题】:How to pre-populate date field in .NET Core Razor pages?如何在 .NET Core Razor 页面中预填充日期字段?
【发布时间】:2020-10-16 12:47:52
【问题描述】:

我正在尝试在搭建的 Razor Pages 表单上使用今天的日期预先填充日期表单字段。我尝试在 OnGet 函数中设置类变量,我还尝试设置值(如下)甚至占位符。没有运气。

.Net Core 3.0 C# Web 应用程序 Razor 页面(不是 MVC)。

当我查看页面源代码时,以下两个日期选择器都会在值中显示正确的日期,但是当页面加载时,我得到的只是选择器中的 mm/dd/yyyy。我希望它在页面加载时向用户显示该日期。

<input asp-for="VideoAccess.AccessStartDate" value="@DateTime.Now" class="form-control" />
<input type="datetime-local" value="@DateTime.Now.ToString()" class="form-control" />

全部包装在 Visual Studio 生成的代码脚手架中。有什么想法吗?

【问题讨论】:

    标签: c# .net-core razor


    【解决方案1】:

    您只需在OnGet() 方法返回页面之前 将今天的日期分配给页面模型的 datetime 属性,然后返回页面。

    让我们使用 Microsoft 的 Razor Pages with Entity Framework Core in ASP.NET Core Tutorial Instructor Entity 来演示这一点

    例如,让我们看看 Create PagePageModel 中的相关部分

    页面/讲师/Create.cshtml:

    <div class="form-group">
        <label asp-for="Instructor.HireDate" class="control-label"></label>
        <input asp-for="Instructor.HireDate" class="form-control"/>
        <span asp-validation-for="Instructor.HireDate" class="text-danger"></span>
    </div>
    

    Pages/Instructors/Create.cshtml.cs:(删除了不相关的部分)

        [BindProperty]
        public Instructor Instructor { get; set; }
    
        public IActionResult OnGet()
        {
            Instructor ??= new Instructor{ HireDate = DateTime.Now };
            return Page();
        }
    

    这一行Instructor ??= new Instructor{ HireDate = DateTime.Now }; 将当前日期时间值分配给模型绑定属性Instructor。页面处理其余部分。

    【讨论】:

      猜你喜欢
      • 2021-03-20
      • 1970-01-01
      • 2021-11-22
      • 2022-01-11
      • 2013-06-28
      • 2012-12-24
      • 2020-07-05
      • 1970-01-01
      • 2020-12-21
      相关资源
      最近更新 更多