使用 ASP MVC 6,如何在每个页面模板中设置一个变量?

Using ASP MVC 6, how do I get a variable set in every page template?

我需要在每个页面模板(不仅仅是布局)中包含一些关于用户的额外信息。如何将我的基本控制器上的 属性 信息获取到每个模板中?

我在 web.config 中阅读过有关制作 WebViewPage 并将其设置为基本视图的信息,但 MVC 6 不使用 web.config 文件。

您必须覆盖基础控制器中的 OnActionExecuting 方法,并在方法主体中设置 viewbag 数据。

ViewBag.UserName = yourObj.UserName; ViewBag.UserId = yourObj.UserId;

在您的模板中,您只需通过 ViewBag 获取此数据。

对于有很多用户的真实项目,使用 DonutCaching 库。因此,您可以只为用户呈现模板,而页面的其余部分则从缓存中获取。它使您的服务器更快。