提问人:Nguyen Duy Nhan 提问时间:11/16/2023 最后编辑:Nguyen Duy Nhan 更新时间:11/20/2023 访问量:76
在 Razor 页面的“输入类型日期”上显示默认日期,ASP.NET Core 6.0 Web 应用
Show default date on "Input Type Date" in Razor Page, ASP.NET Core 6.0 web app
问:
我有一个索引页面和指向搜索页面的链接。我希望在运行页面搜索时将今天的默认日期显示为“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
}
感谢大家的帮助。
答:
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>
默认日期:
在我选择日期并搜索后:
评论
0赞
Nguyen Duy Nhan
11/22/2023
非常感谢段宇宁。
评论