2012-09-17 15 views
0

我有一个客户页面,用户可以在其中为客户输入多个位置。我使用telerik ajax网格来显示位置,并且当添加新位置时,我将它添加到会话并返回到网格。最后,当用户提交时,客户和使用customerid作为参考密钥的所有位置都被插入。我正在清除会话,当用户输入创建/编辑页面并成功提交或发生任何异常时。问题在于,当用户为一个用户添加位置,然后打开另一个选项卡时,创建另一个用户,然后为先前的用户清除所有位置。由于会话,这个问题正在发生。某些视图状态将是页面特定的。但对于Ajax网格操作,viewdata/viewbag不起作用。关于如何实现这一点的任何想法。提前致谢。在MVC会话中存储项目的问题

回答

0

将您当前工作的客户ID存储在路线值中。

有客户名单。在列表中有形式的每个客户的链接

/{controller}/{action}/{id} 

/customer/edit/1 

Telerik Controls不帮你在这里。它更容易从一个简单的循环开始,呈现视图中的客户。

+0

是的我是新来的asp.net mvc。我在webforms中将viewbag/viewdata与viewstate进行了比较。但是我意识到他们不一样,我们需要每次在MVC中填充它们。我很擅长展示客户并创建/编辑客户。这里的问题是我在页面上只有一个保存按钮,并且可以在客户页面上添加多个位置。我需要临时存储位置,直到点击保存按钮。为此,我使用了会话,但问题在于用户使用浏览器选项卡时。 – Sunny

+0

尝试通过写出表单字段数组来保存UI中的位置列表。本文可能会让你开始http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/ –

+0

是的,似乎我可以强烈生成键入数组客户端并发布到页面(或)使用会话中随机生成的guid存储值。 – Sunny