C# 这是在WebMatrix中设置和维护会话变量的最佳方法吗?
在过去,我总是在使用WebMatrix维护会话状态时遇到很多问题,并在期望它们超时时处理它们(主要是因为我还在学习) 必须始终记住用户输入,因为如果他们提交并且出现自定义错误,我不希望他们必须将所有信息重新输入表单 我想我终于找到了一种方法,可以在将来需要时正确维护和管理超时会话变量 我意识到还有其他几种在网页之间传输数据的方法,相信我,如果适用,它们肯定会首先被使用。这个问题只适用于我觉得会话变量是我的最佳选择的情况 我的问题是,我总是认为我已经弄明白了,然后,只有在我设置了超过一半的编码之后,我才意识到为什么它不太有效,然后找到一些草率(但有效)的解决方法,至少对那个项目有效 我将在使用公共数据库和web界面组合时使用会话变量的项目。通常有3个主页面:添加条目页面、编辑条目页面和查找条目页面。添加条目页面和查找条目页面最终发布并重定向到编辑条目页面 在我开始我的下一个项目之前,我认为询问我的方法是否至少瞄准了正确的方向,或者我是否仍然没有完全正确地接近这个方向是明智的 以下是我认为可能有效的方法(尽管这似乎有点太简单):C# 这是在WebMatrix中设置和维护会话变量的最佳方法吗?,c#,asp.net,session-state,webmatrix,asp.net-webpages,C#,Asp.net,Session State,Webmatrix,Asp.net Webpages,在过去,我总是在使用WebMatrix维护会话状态时遇到很多问题,并在期望它们超时时处理它们(主要是因为我还在学习) 必须始终记住用户输入,因为如果他们提交并且出现自定义错误,我不希望他们必须将所有信息重新输入表单 我想我终于找到了一种方法,可以在将来需要时正确维护和管理超时会话变量 我意识到还有其他几种在网页之间传输数据的方法,相信我,如果适用,它们肯定会首先被使用。这个问题只适用于我觉得会话变量是我的最佳选择的情况 我的问题是,我总是认为我已经弄明白了,然后,只有在我设置了超过一半的编码之后
抱歉,如果这是一个愚蠢的问题xD在我看来,您不应该使用会话变量来记住用户在表单中输入的内容。表单-添加或编辑-应发布到自身进行验证。这样,这些值就可以在Request.Form集合中使用。在发生验证错误时,您可以轻松地重新填充表单。成功提交后,插入或更新数据库,然后重定向到另一个页面以防止重复提交
如果使用得当,会话变量非常容易使用。我怀疑您遇到的困难是因为您在错误的场景中使用了它们。我从来都不知道新创建的记录的ID比用户刚刚输入的实际数据更敏感。但是,如果您不能依赖会话数据来持久化多个请求,您可以考虑加密数据并将其放入查询字符串中。Google是您的朋友:在您执行yor db.Execute以创建新记录之后,您应该调用
var newId=db.GetLastInsertId()
获取该记录的ID:是-您使用现有的数据库变量,它将检索此连接上最近创建的行的标识值,其中主键是标识类型。这是一个任何人都希望得到的简洁答案(真正的答案)。法官大人,我没有其他问题了……)再次感谢你,真的!