ASP.NET MVC 3,类似 Razor 布局控制器?
还没有找到任何关于如何执行此操作的信息。我需要运行一些代码来更新 Razor 布局中的数据。
我可以通过在使用布局和设置 ViewBag 数据的每个操作中运行代码来做到这一点,但这似乎不切实际......
那么,我该如何以更好的方式做到这一点?
Haven't found anything about how to do this. I Require some code to run to update data in my Razor Layout.
I could do this by running the code in every Action that is using the Layout and setting ViewBag data, but that seems impracticable...
So, how would i do this in a better way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个问题的答案,建议使用全局操作过滤器。
这是在每个操作上执行的一段代码(过滤器),您可以使用它来设置 ViewBag 中的属性。这些属性可以从每个视图和布局中访问。
The answer to this question, proposes to use a global action filter.
That is a piece of code (filter) that is executed on every action, you can use it, to set properties in the ViewBag. These properties are accessible from every View, and from the layout.
如果您在布局中渲染的数据与实际视图的数据正交(它应该是,或者您正在使用应该使用部分视图的布局),那么恕我直言,概念上最合理的方法是采用将数据渲染到布局中的子操作(即使用 Html.Action)。
If the data you are rendering in your layout is orthogonal to the data of your actual view (which it should be, or otherwise you are using layouts where you should be using partial views), then imho the conceptually most sound method would be to employ a child action (i.e. using Html.Action) to render the data into the layout.