c# - 在 aspnet core Razor 页面中验证失败时重新填充表单数据
问题描述
提前感谢您的帮助
我正在使用 aspnet core 2.1 razor pages。当验证失败或 ModelState 无效时,我需要重新填充表单数据。在 MVC 中,我们可以使用return View(model)
,但是如何在 aspnet core 2.1 razor 页面中做到这一点。
我试过return Page()
了,但这会触发服务器端验证,但不会重新填充表单中的数据
需要帮忙...
解决方案
如果您自动重新填充表单值
- 使用
[BindProperty]
相关 PageModel 属性上的属性, - 使用输入标签助手
asp-for
中的属性在UI(Razor 内容页面)中建立双向绑定 return Page()
如果发生这种情况,请致电ModelState.IsValid == false
。
以下是证明这一点所需的最少步骤:
表单:
<form method="post">
<input asp-for="FirstName"/><span asp-validation-for="FirstName"></span><br />
<input type="submit" />
</form>
和一个 PageModel:
public class FormValidationModel : PageModel
{
[BindProperty, StringLength(5)]
public string FirstName { get; set; }
public IActionResult OnPost()
{
if (!ModelState.IsValid)
{
return Page();
}
return RedirectToPage("index");
}
}