1.asp.net core mvc 上传后,点击网页刷新按钮会重新上传
2.需求:在执行完成上传后,用RedirecToAction("ControllerName")没有跳转成功,用Response("\Home\Index")的方式提示没有找到页面,求正确方法
asp.net core mvc 防止刷新重新上传
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
1. 问题分析: 在 ASP.NET Core MVC 中,由于 Web 请求的无状态性,页面刷新后会重新发送相同的请求,导致上传操作重复执行。这是因为刷新按钮实际上会重新加载当前页面,从而重新发送请求。- 解决方法: 为了避免页面刷新后重新上传,可以使用 PRG(Post/Redirect/Get)模式来解决。该模式的核心思想是在 POST 操作完成后,将客户端重定向到另一个页面,这样刷新按钮就不会再触发上传操作。 下面给出具体的案例和代码示例: 案例: 假设有一个简单的上传页面,用户可以选择一个文件上传至服务器。上传完成后,页面应该跳转到成功页面。 代码示例:
- 创建一个简单的控制器
HomeController
和两个页面Upload.cshtml
和Success.cshtml
:
public class HomeController : Controller { // GET: /Home/Upload public IActionResult Upload() { return View(); } // POST: /Home/Upload [HttpPost] public IActionResult Upload(IFormFile file) { // 执行上传操作 // ... // 上传完成后重定向至成功页面 return RedirectToAction("Success"); } // GET: /Home/Success public IActionResult Success() { return View(); } }
- 在
Upload.cshtml
页面中使用表单进行文件上传:
<form asp-action="Upload" enctype="multipart/form-data" method="post"> <input type="file" name="file" /> <button type="submit">上传</button> </form>
- 在
Success.cshtml
页面中显示上传成功的消息:
<h1>上传成功!</h1>
通过使用 PRG 模式,当用户在
Upload.cshtml
页面点击上传按钮后,表单将被 POST 到Upload
动作中执行上传操作。一旦上传完成,控制器将执行重定向至Success
动作,显示上传成功的消息。这样,刷新按钮将不会再次触发上传操作。 希望以上解答对您有帮助,如有任何疑问,请随时追问。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 网络分析设施点无法识别
- ¥15 状态图的并发态问题咨询
- ¥15 PFC3D,plot
- ¥15 VAE模型编程报错无法解决
- ¥100 基于SVM的信息粒化时序回归预测,有偿求解!
- ¥15 物体组批优化问题-数学建模求解答
- ¥15 微信原生小程序tabBar编译报错
- ¥350 麦克风声源定位坐标不准
- ¥15 apifox与swagger使用
- ¥15 egg异步请求返回404的问题