我的页面结构
我有 3 个文本框,我在其中启用了客户端验证。
我有提交按钮来发布表单数据。
问题
当我单击提交按钮时,它将转到我的 Post 方法,假设我没有在文本框中输入值,那么它会从服务器端(Http Post)向我抛出错误。
现在我将在文本框中输入值,然后我将刷新浏览器,它进入 Post 方法而不是 Get !!!
有什么帮助吗?
我的页面结构
我有 3 个文本框,我在其中启用了客户端验证。
我有提交按钮来发布表单数据。
问题
当我单击提交按钮时,它将转到我的 Post 方法,假设我没有在文本框中输入值,那么它会从服务器端(Http Post)向我抛出错误。
现在我将在文本框中输入值,然后我将刷新浏览器,它进入 Post 方法而不是 Get !!!
有什么帮助吗?
这是浏览器的默认行为,它在刷新时重新发出最后一个请求,在这种情况下恰好是一个 POST。
如果您希望防止刷新时重新发布,您应该在 MVC 中实现 PRG (POST-Redirect-GET) 模式。这是接收 POST 的控制器在处理后使用 GET 请求重定向的地方。因此,最后一个浏览器请求是一个 GET,它将在刷新时重新发出。
[HttpPost]
public ActionResult Create(Model model) {
if (ModelState.IsValid) {
//do processing
return RedirectToAction("Details", new { id = model.Id })
}
return View(model);
}