我有一个包含3个部分的应用程序:
“主菜单”和“上下文菜单”基于会员资格。我不希望每次加载页面时都加载它们,因为这会消耗资源数据库。所以,我使用ajax只加载主菜单一次,当选择一个项目时,我加载该项目的上下文菜单。
我的问题是:每个表单的帖子都会删除我的菜单。
问题:我是否必须使用ajax构建我的整个应用程序?我不想这样做,因为在表单中发布一个帖子然后用ajax将所有数据发送到控制器太简单了。
到目前为止,我有两个选择:
是否可以使用ajax加载菜单并使用表单的帖子?
对不起,如果我不够清楚。
答案 0 :(得分:1)
给我一个暂停的句子是“我不想在每次加载页面时加载它们,因为这会消耗资源数据库。”
你看,我已经构建了很多应用程序,它们根据用户角色(你称之为成员资格)显示菜单和子菜单。从资源或数据库的角度来看,这从来就不是问题。
当您登录时,您可以访问一次所需的所有成员资格信息。在最简单的情况下,用户的身份将与他们拥有的角色一起存储在上下文中(HttpContext) .User),因此您根本不需要数据库查找来获取每个请求的此信息。请注意,在这种情况下,也不需要ajax。
如果由于某种原因您无法在上下文中存储您的会员信息,您仍然可以存储在会话中(如果在内存中)或加密的Cookie中。
现在,我明白了,我并不是你的情景的所有细节,而且可能在你的情景中你应该做的事情是有道理的,但我建议你再考虑一下,因为在正常情况下是什么你指出是一个问题(数据库资源)应该不是一个问题。
最重要的是:如果您更改了应用程序,它会在用户登录时存储会员信息,那么您就不会遇到问题。
答案 1 :(得分:0)
您不必使用Ajax构建所有应用程序。但在这种情况下,Ajax可能是最好的前进方式。
以下是我的建议
我知道这可能看起来很吓人,但如果您有许多数据输入表单,则可以重复使用此代码。