我正在使用 MVC3,并且有一个对我的所有 View 通用的布局文件。在布局文件中,我想显示有关当前登录用户的一些信息。
我现在开始工作了,但我发现唯一的方法是在操作方法中设置一些 ViewBag 字段,然后在布局文件中选择它们。这意味着我必须从我所有的操作方法中访问 ViewBag 字段,或者至少创建一个设置它们的方法,然后从我的所有操作方法中调用该方法。
是否有任何集中方式来完成这项工作?绝对最好的是在一个地方为布局文件做一次,但如果没有其他选择,每个 Controller 一个地方可能就足够了。
最佳答案
正确的方法是在布局文件中调用 Html.RenderAction()
,您需要在其中获取特定于用户的详细信息。然后在某个地方创建一个合适的 Action 方法,该方法读取用户的帐户详细信息并将它们作为 View (部分 View )或作为原始 html(return Content("...")
)返回。
这样,您还可以受益于缓存布局页面并保持用户帐户详细信息区域未缓存的能力(因为每个用户显然不同)。
设置 ViewBag 不是一个好主意,它不是强类型并且它破坏了 MVC 的正确模式。
关于c# - 在 MVC3 中的布局文件中显示帐户信息的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7009022/