gpt4 book ai didi

asp.net - ASP.Net MVC 中的 PRG 模式?

转载 作者:行者123 更新时间:2023-12-03 21:35:03 33 4
gpt4 key购买 nike

我是 ASP.Net MVC 的新手。在 PHP 中,即使 post 请求无效,我也总是使用 PRG 模式。 session 闪烁非常容易(也是用户友好的)。

但是,在 ASP.Net MVC 中,当请求无效时,我看不到执行 PRG 的简单方法。我可以想到一些方法,但我不认为它们是好的做法,并且会增加一些不必要的工作。

此外,从我读过的几篇文章中,不鼓励在请求无效时使用 PRG。如果这是一种不好的做法,那么处理不成功的发布请求的更好方法是什么?没有PRG真的更好吗?当用户尝试刷新页面时,我应该让相当烦人的浏览器警告吗?

最佳答案

在 Mvc 中,通常的做法是处理您的 Post Actions,如下所示:

[HttpPost]
[ValidateAntiForgeryToken]
public virtual ActionResult LoginForm(LoginViewModel loginViewModel)
{
if (!ModelState.IsValid)
return View("Login", loginViewModel);

return Redirect("/");
}

如您所见,属性 ModelState.IsValid 会告诉您请求是否无效,因此当 Post 请求包含错误时,您可以返回相同的 View 并在 ValidationSummary 中显示错误消息。这是 View 的代码:
@using (Html.BeginForm("LoginForm", "Account"}))
{
@Html.ValidationSummary() // THIS WILL SHOW THE ERROR MESSAGES
@Html.AntiForgeryToken()
@Html.TextBoxFor(x => x.Email)
@Html.PasswordFor(x => x.Password)
<button type="submit">Submit</button>
}

关于asp.net - ASP.Net MVC 中的 PRG 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36788351/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com