asp.net-mvc – 在ASP.NET MVC中重定向后发布
我在ASP.NET MVC应用程序中使用
Redirect After Post模式.我有
以下场景: >用户进入/ controller / index,要求他填写表格. 这种方法的问题在于,如果用户在查看/ controller / result中的结果时点击F5,则由于TempData已过期且结果对象不再可用,因此无法再呈现页面. 用户不希望出现这种行为.一种可能的解决方案是在POST之后重定向,而不是渲染结果视图.现在,如果用户点击F5,他会得到一个浏览器对话框,询问他是否要重新发布表单.这也是不希望的. 我想到的一个可能的解决方案是序列化结果对象并在重定向之前将其传递给URL,但AFAIK对GET请求的长度有一些限制,如果对象变得很大,我可能会遇到这种限制(特别是如果base64编码) ). 另一种可能性是使用Session对象而不是TempData来持久保存结果.但在实施此解决方案之前,我想知道是否有更好的方法. 更新: 进一步研究这个问题我发现如果我将结果对象重新放在/ data / result动作中的TempData中,它实际上是有效的: public ActionResult Result() { var result = TempData["result"]; TempData["result"] = result; return View(result); } 但这感觉很脏.这种方法是否会产生任何副作用(例如切换到进程外会话提供程序,因为目前我使用的是InProc)? 解决方法
使用一些唯一键将其存储在会话中,并将密钥作为URL的一部分传递.然后,只要会话处于活动状态,他们就可以使用后退/前进按钮来查看其内容,并且仍然可以正确响应URL.或者,您可以使用ASP缓存,但我通常会为用户共享的对象保留该缓存.当然,如果您使用计算参数作为键,并在缓存中找到结果,则可以简单地重复使用它.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 我可以获得有关JavaScript代理的一些建议吗?
- asp.net-mvc – UpdateModel前缀 – ASP.NET MVC
- asp.net-mvc – 是否有一个ASP MVC与JSTL标签等效?
- 使用asp.net 4.5 OAuth注册google与clientid和secret
- 具有EntityDataSource的一个ASP.NET GridView中的两个相关数
- asp.net – ‘检测到Autofac循环组件依赖性’错误
- WPF 增加合计一栏
- asp.net-core – 为Microsoft.CodeAnalysis.Common检测到版
- asp.net – 想要在Javascript中触发Dropdown SelectedIndex
- asp.net-mvc-3 – MVC3客户端验证无法使用Ajax.BeginForm表
- asp.net-web-api – ember-data:根据需要加载ha
- asp.net-mvc – 左加入日期,分组结果,在分组结果
- asp.net-mvc – 在ASP.NET MVC组织帐户中访问Azu
- asp.net-mvc-5 – 使用Hangfire时出现SQL Server
- asp.net-mvc – 如何动态添加到ASP.NET MVC Rout
- asp.net-mvc – ASP.Net MVC 2.0 Html.HiddenFor
- asp.net – 什么内容类型强制下载文本响应?
- asp.net-mvc – 为什么我不能在ASP.NET MVC 3中使
- ASP.net客户端ID模式
- 是否有开源的Asp.net会员管理GUI(如netwebadmin,