假设我有一个简单的 ASP MVC3 list Controller ,带有 add 方法和 id 参数。
列表:
http://localhost/MVCAPP/ListFoo/
添加方法
http://localhost/MVCAPP/ListFoo/Add?id=1
在我的 Add 方法中,我使用添加的元素更新我的 Viewmodel,然后调用:
return View("ListFoo", viewModel);
显示更新后的列表,一切都差不多了。
问题是,这样返回,地址栏中的URL仍然是
http://localhost/MVCAPP/ListFoo/Add?id=1
如果用户按 F5,则会添加另一个项目,我想阻止这种情况发生。
我知道我可以在 Controller 中过滤掉这种行为,但我宁愿将浏览器地址栏重定向到:
http://localhost/MVCAPP/ListFoo/
你知道有什么方法可以做到这一点吗?
顺便说一句,我不确定尝试控制地址栏内容是看待这个问题的正确方法...
最佳答案
使用Action.RedirectToAction method在 Controller 中完成工作后重定向客户端。
除此之外,您还可以使用 POST 作为 FormMethod 将数据发送到服务器。
关于asp.net-mvc-3 - ASP MVC 3 防止页面刷新时多次插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9788090/