当验证失败时,我想重定向回验证错误(像Laravel一样(。
Laravel重定向错误示例:
redirect()->back()->withErrors(['email' => 'Email already exists']);
我的控制器:
[HttpPost]
public IActionResult ProcessLogin(LoginRequest loginRequest)
{
if (! ModelState.IsValid)
{
// Redirect back to login view and display error messages.
}
// Login handling....
}
asp.net 核心 2.0 本身是否支持此功能?
我能找到的只是以json或javascript验证的形式返回错误。
最典型和标准的方法是PRG(Post-Redirect-Get(模式,ASP.NET 核心(和MVC,一般(遵循。使用此模式,您可以在成功时重定向。如果存在验证问题,只需返回视图即可。换句话说:
public IActionResult Login()
{
return View();
}
[HttpPost]
public IActionResult Login(LoginRequest loginRequest)
{
if (ModelState.IsValid)
{
// do login
return Redirect("/some/url");
}
return View(loginRequest);
}
ModelState
对象(包括验证错误列表(自然可用于视图,而不必以某种方式将错误从一个请求传递到另一个请求。