我正在研究ASP.NET MVC 4项目。我有以下方案来实现:
Page A | <-> Page B | <-> Page C
| <-> Page D
Page A调用Page B
页面B调用页面C,一旦页面C完成它的工作,它将返回到页面B
页面B也可以调用Page D,一旦页面D完成它的工作,它就会返回到页面B
一旦页面B完成任务,控件将返回到页面A.
这些页面通常是&#34;创建&#34; MVC中的页面创建一个新模型并将其保存到数据库中。保存后,要返回的默认操作是该模型的列表视图。但是我正在劫持这个流程并打电话给&#34;创建&#34;来自其他页面的页面,并使用session
存储UrlReferrer
并将其重定向回发出请求的原始页面,而不是回退到该模型的默认列表视图页面。
即使我没有在另一个页面中使用一个页面的会话变量,并且我在流程完成后处理会话变量,我仍然通过临时存储{{1}来创建MVC页面stateful
} 细节。
是否有解决方法可以在不使用会话状态的情况下实现此行为?
编辑:代码
redirection
答案 0 :(得分:0)
你可以创建一个临时数据库表并使用它,但你仍然需要从会话回到表的一些id。独特的钥匙。您可以将它存储在用户本地PC上的cookie中,然后将其传入并在mvc中读取它?
答案 1 :(得分:0)
您可以将RequestedUrl隐藏在表单中,以便客户端在提交时将其发送给您,而不是将其保留在服务器上。或者甚至更好,而不是保留整个URL,而不是保留几个隐藏的参数,您可以在提交表单后重新构建URL。
答案 2 :(得分:0)
Context.Items
代替:
http://www.csse.monash.edu.au/courseware/cse2030/2004/state.html
此外,默认的ASP.NET会话状态将阻止每个会话ID。当您同时点击两个页面时,使用相同的会话ID,一个将在另一个页面开始之前运行完成。完全避免它将允许您的CRUD操作并行发生,这可能是好事还是坏事,这取决于后端代码的其余部分处理同时CRUD操作的程度。