在此先感谢您的帮助
我正在使用aspnet core 2.1剃刀页面。验证失败或ModelState无效时,我需要重新填充表单数据。
在MVC中,我们可以使用return View(model)
,但如何在aspnet core 2.1剃刀页面中做到这一点。
我尝试了return Page()
,但这会触发服务器端验证,但不会重新填充表单中的数据
需要帮助...
答案 0 :(得分:3)
如果您
,将自动重新填充表单值[BindProperty]
属性asp-for
属性在UI(剃须刀内容页面)中建立双向绑定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");
}
}