参数保留在输入 Razor C# 上
Parameter stay on Input Razor C#
我的视图如下:
<form method="post" asp-action="Index">
<input id="sStartDate" name="sStartDate" /><br>
<input id="sFinishDate" name="sFinishDate" /><br>
<input type="submit" class="btn btn-sm btn-primary btn-block" value="Generate" />
<table>
<!-- somedatahere... -->
</table>
</form>
然后我有一个这样的控制器:
public IActionResult Index(DateTime sStartDate, DateTime sFinishDate)
{
var model = _db.Activities.Where(w => w.StartDate >= sStartDate && w.StartDate <= sFinishDate).ToList();
return View(model);
}
我的问题:
- 如何将
sStartDate
和 sFinishDate
输入设置为今天的默认日期?
- 当我点击
Generate
时,输入值应该保持为用户选择。我该怎么做?
现在,当我点击 sStartDate
和 sFinishDate
,然后点击 Generate
。输入设置为空。
需要建议。
谢谢。
您可以使用 TempData 来保存日期:
View(ToShortDateString()
用来显示日期不显示时间,如果要显示时间,去掉这个方法即可):
@{
var sStartDate = TempData["sStartDate"] == null ? DateTime.Now.ToShortDateString() : TempData["sStartDate"];
var sFinishDate = TempData["sFinishDate"] == null ? DateTime.Now.ToShortDateString() : TempData["sFinishDate"];
}
<form method="post" asp-action="Index">
<input id="sStartDate" name="sStartDate" value="@sStartDate" /><br>
<input id="sFinishDate" name="sFinishDate" value="@sFinishDate"/><br>
<input type="submit" class="btn btn-sm btn-primary btn-block" value="Generate" />
</form>
控制器:
[HttpPost]
public IActionResult Index(DateTime sStartDate, DateTime sFinishDate)
{
TempData["sStartDate"] = sStartDate.ToShortDateString();
TempData["sFinishDate"] = sFinishDate.ToShortDateString();
return View();
}
我的视图如下:
<form method="post" asp-action="Index">
<input id="sStartDate" name="sStartDate" /><br>
<input id="sFinishDate" name="sFinishDate" /><br>
<input type="submit" class="btn btn-sm btn-primary btn-block" value="Generate" />
<table>
<!-- somedatahere... -->
</table>
</form>
然后我有一个这样的控制器:
public IActionResult Index(DateTime sStartDate, DateTime sFinishDate)
{
var model = _db.Activities.Where(w => w.StartDate >= sStartDate && w.StartDate <= sFinishDate).ToList();
return View(model);
}
我的问题:
- 如何将
sStartDate
和sFinishDate
输入设置为今天的默认日期? - 当我点击
Generate
时,输入值应该保持为用户选择。我该怎么做?
现在,当我点击 sStartDate
和 sFinishDate
,然后点击 Generate
。输入设置为空。
需要建议。
谢谢。
您可以使用 TempData 来保存日期:
View(ToShortDateString()
用来显示日期不显示时间,如果要显示时间,去掉这个方法即可):
@{
var sStartDate = TempData["sStartDate"] == null ? DateTime.Now.ToShortDateString() : TempData["sStartDate"];
var sFinishDate = TempData["sFinishDate"] == null ? DateTime.Now.ToShortDateString() : TempData["sFinishDate"];
}
<form method="post" asp-action="Index">
<input id="sStartDate" name="sStartDate" value="@sStartDate" /><br>
<input id="sFinishDate" name="sFinishDate" value="@sFinishDate"/><br>
<input type="submit" class="btn btn-sm btn-primary btn-block" value="Generate" />
</form>
控制器:
[HttpPost]
public IActionResult Index(DateTime sStartDate, DateTime sFinishDate)
{
TempData["sStartDate"] = sStartDate.ToShortDateString();
TempData["sFinishDate"] = sFinishDate.ToShortDateString();
return View();
}