使用 MVC + Post Enabled Forms 进行无 Cookie 会话






4.57/5 (5投票s)
使用 MVC 和启用 POST 表单的无 Cookie 会话。
介绍
提供的代码允许程序员使用标准函数,以便在使用无 Cookie 会话和 MVC 时保持表单中的 POST 请求。
使用代码
将类添加到您的项目后,使用新函数就像以前一样简单。
<%
using (Html.BeginFormNoCookies("Claim")) { %>
//Form Contents here
<%} %>
表单 ID 是唯一的参数。从技术上讲,它不是必需的,除非启用了客户端验证。
工作原理
现有的 BeginForm 只是一个扩展,我也是这样实现的。事实上,我下载了 Microsoft 的 MVC2 FormExtension 的源代码。我更改了函数名称以避免混淆。为了解决由于一些现有方法是 System.Web.MVC
的内部方法而无法维护动态表单 ID 创建的问题,必须添加一个新的参数。接下来的主要部分是构造 URL 并始终包含会话 ID 以及任何操作、ID 或查询参数。
我创建了一个名为 CookielessHelper
的类。这是创建 URL 的地方。URL 围绕控制器构建。始终预期它采用以下格式:/{根信息}/{控制器}/{任何内容}?{查询}。会话 ID 始终在控制器之前添加,并且始终保留所有其他内容。
注意
目前此版本未启用路由修改。如果您使用任何其他函数,则不会添加会话 ID。所有其他函数目前都已注释掉,直到完全实现它们。我相信这并不困难,但我目前不需要它。
历史
- 2011/8/4 - Linus Concepcion 指出我可以通过 HTMLHelper 获取控制器。谢谢!(删除了必需的视图页面参数。)
- 2011/8/4 - 初始发布。