在ASP.NET Core Razor Page中验证失败时重新填充表单数据

时间:2018-09-27 12:11:32

标签: c# asp.net-core razor-pages

在此先感谢您的帮助

我正在使用aspnet core 2.1剃刀页面。验证失败或ModelState无效时,我需要重新填充表单数据。 在MVC中,我们可以使用return View(model),但如何在aspnet core 2.1剃刀页面中做到这一点。

我尝试了return Page(),但这会触发服务器端验证,但不会重新填充表单中的数据

需要帮助...

1 个答案:

答案 0 :(得分:3)

如果您

,将自动重新填充表单值
  1. 在相关的PageModel属性上使用[BindProperty]属性
  2. 使用input tag helpers中的asp-for属性在UI(剃须刀内容页面)中建立双向绑定
  3. 在发生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");
    }
}