在 Razor 页面的“输入类型日期”上显示默认日期,ASP.NET Core 6.0 Web 应用

Show default date on "Input Type Date" in Razor Page, ASP.NET Core 6.0 web app

提问人:Nguyen Duy Nhan 提问时间:11/16/2023 最后编辑:Nguyen Duy Nhan 更新时间:11/20/2023 访问量:76

问:

我有一个索引页面和指向搜索页面的链接。我希望在运行页面搜索时将今天的默认日期显示为“16/11/2023”,但是当选择另一个日期(如“15/11/2023”并按下“搜索”按钮)时,将显示结果并加载返回页面,所选日期将是“15/11/2023”,而不是默认日期“16/11/2023”。

https://i.stack.imgur.com/D7tnu.png

文件 Search.cshtml 中的代码

<table>
    <tr>
        <td><label>Date</label></td>
        <td><input type="date" id="date" name="date" value="" /></td>
        <td><button type="submit" id="btnSearch" asp-page-handler="Data">Search</button></td>
    </tr>
</table>

<script type="text/javascript">
    var initialLoad = true;
    if (initialLoad) {
        // Do work that is done when the page was first loaded.
        document.getElementById('date').value = new Date().toISOString().substring(0, 10);
    } else {
        // Do work when it's not the initial load.
    }
</script>

Search.cshtml.cs 中的代码

public void OnPostData()
{
    string str_date = Request.Form["date"];
    // Code show result search
}

感谢大家的帮助。

日期 输入 剃刀 asp.net-core-6.0

评论


答:

0赞 Yuning Duan 11/20/2023 #1

我希望在运行页面搜索时将今天的默认日期显示为 “16/11/2023”,但在选择其他日期(如“15/11/2023”)时,以及 按下“搜索”按钮,将显示并加载结果 返回页面,选择的日期将是“15/11/2023”,而不是 默认日期“16/11/2023”

可以使用 ViewData 在 Razor 页面中显示日期,并将其值设置为当前日期或默认的所选日期,由于页面已提取日期并将其显示在页面上,因此无需在 OnGet 方法中设置默认日期。然后可以使用【BindProperty】自动将表单字段绑定到 Date 属性,然后使用 ViewData 将 selecteddate 设置为 Date 属性的值,可以使用以下代码作为参考:

控制器:

[BindProperty]
public string Date { get; set; }

public IActionResult OnPost()
{
     ViewData["SelectedDate"] = this.Date;
     return Page();
}

页:

<form method="post">
    <table>
        <tr>
            <td><label>Date</label></td>
            <td><input type="date" id="date" name="date" value="@((string)ViewData["SelectedDate"] ?? DateTime.Now.ToString("yyyy-MM-dd"))" /></td>
            <td><button type="submit">search</button></td>
        </tr>
    </table>
</form>

默认日期:

enter image description here

在我选择日期并搜索后:

enter image description here

评论

0赞 Nguyen Duy Nhan 11/22/2023
非常感谢段宇宁。