0

在我正在开发的应用程序中,管理员可以在下拉列表中选择要使用的客户。问题是管理员可以浏览大量视图,并且每次他们都必须再次选择客户。在网络表单中,这相当容易......将其存储在 Session 变量中并在另一个页面加载时重置它。

MVC 没那么多。我似乎被困在我将这个值从控制器传递给视图的地方。我们将值存储在 Session 变量中,我们使用这样的基本控制器访问该变量:

MyController.CurrentUser.CurrentCustomerId

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

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

ViewBag.CurrentCustomerId = CurrentUser.CurrentCustomerId; 

即使这样,我也不确定 ViewBag 数据是否会传递到部分视图。我觉得是这样的。

似乎应该有一种更有效的方法来做到这一点并且仍然遵守 MVC 规则?

4

1 回答 1

0

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

在以下链接中查看他的答案:Razor MVC,在哪里放置可跨母版页、partiview 和视图访问的全局变量?

于 2013-09-18T07:07:47.413 回答