在MVC中维护输入控制状态

时间:2013-09-13 12:56:31

标签: asp.net-mvc session-variables

在我正在处理的应用程序中,管理员可以在下拉列表中选择要使用的客户。事情是,管理员可以查看大量视图,每次他们必须再次选择客户。在webforms中,这很容易......将它存储在Session变量中,并在另一个页面加载时重置它。

MVC并非如此。我似乎陷入了将此值传递给控制器​​视图的位置。我们将值存储在Session变量中,我们使用这样的基本控制器访问它:

MyController.CurrentUser.CurrentCustomerId

我无法解决的问题是我如何将此值传递给局部视图。客户选择器工具处于局部视图中,该视图被添加到需要它的页面中。

我想过使用ViewBag,但这意味着在我的控制器中需要此值的每个操作中,我都必须添加:

ViewBag.CurrentCustomerId = CurrentUser.CurrentCustomerId; 

即便如此,我也不确定ViewBag数据是否传递到局部视图。我觉得是这样的。

似乎应该有更有效的方法来执行此操作并仍然遵守MVC规则?

1 个答案:

答案 0 :(得分:0)

@Andre Calil为在控制器和视图之间传递用户信息提供了一个非常好的解决方案,我最终使用了这种方法。

通过以下链接查看他的回答:Razor MVC, where to put global variables that's accessible across master page, partiview and view?