温馨提示:本文翻译自stackoverflow.com,查看原文请点击:c# - Repopulate form data when validation fails in aspnet core Razor Page
asp.net-core c# razor-pages

c# - 当验证失败时,重新填充表单数据。

发布于 2020-03-27 15:52:29

预先感谢您的任何帮助

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

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

需要帮忙...

查看更多

查看更多

提问者
Kamran Ajmal
被浏览
123
Mike Brind 2018-09-27 22:17

如果您重新填写表单值

  1. [BindProperty]在相关的PageModel属性上使用属性,
  2. 使用输入标签助手中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");
    }
}