【问题标题】:Validating a form server side - ASP.NET Core 2.2 Razor Pages验证表单服务器端 - ASP.NET Core 2.2 Razor Pages
【发布时间】:2019-04-04 16:51:28
【问题描述】:

我有一个表单,我一直在使用标准的 [必需] 辅助标签进行验证。

我需要添加验证以查看条目是否已经在 AD 中,所以我使用了:

public async Task<IActionResult> OnPostAsync(){

 if (!ModelState.IsValid)
     {

        return Page();
     }

if (MyADClass.Exists(Model.id)){

    Error = "An account already exists for" + Model.id;

    return RedirectToPage(new { message = Error });
}

//Else do stuff

}

这种方法的问题在于它刷新了整个页面并丢失了当前表单中的值。在用户单击提交后执行验证但不丢失模型数据的最简单方法是什么?

【问题讨论】:

  • 不能返回包含模型数据的页面吗?你可以在 MVC 中。例如。 return Page(model);.
  • 对于您的自定义错误,您实际上可以将其添加到模型状态集合中,然后它成为主要验证过程的一部分
  • 我不认为返回 Page(model);剃刀页面中的有效语法是什么?我将错误添加到模型中 - 但前提是我可以将其传递回页面...

标签: asp.net ajax asp.net-core


【解决方案1】:

意识到我可以直接将 Message 设置为模型的一部分并调用 return Page();

感谢@ADyson

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 2018-10-16
    • 2019-07-27
    • 1970-01-01
    相关资源
    最近更新 更多