【发布时间】:2010-12-14 01:20:32
【问题描述】:
我被困住了!我的印象是 _layout.cshtml 文件用于类似 MasterPage 的内容。那里的所有内容都呈现在每个页面上。自然,我想编写代码以在该文件中呈现我的侧边栏菜单。
我想动态显示我的数据库中的类别列表,但我在将类别的实际模型传递给 Layout.cshtml 时遇到问题,因为似乎没有控制器实际接触它。
有什么建议吗?
否则请告诉我如何解决这个问题。在过去的三天里,我一直在绞尽脑汁,仍然没有优雅的解决方案。
我需要:
- 从数据库中动态获取类别列表。
- 在每个视图上显示此类别列表。 (因此使用 _layout.cshtml)
- 优雅地处理每个不同类别的点击。
我已经束手无策了。 :P你将如何解决这个问题?
【问题讨论】:
-
您在过去几天里提出了许多与此相关的问题,并提供了许多解决方案,包括 1) RenderPartial 2) RenderAction 3) ViewData 4)全局操作过滤器等。您是否尝试过其中任何一种,它们如何不符合您的要求?
-
归结为 layout.cshtml 文件无法使用传递的模型,因为没有控制器对其进行操作。有什么建议吗?
-
“没有控制器对其进行操作”是什么意思?控制器创建/获取视图模型并将其传递给视图。 Thew 视图(无论是内容还是主视图)然后执行任何它想要显示视图模型对象包含的内容。如果控制器传入模型,则视图可以访问它。
-
每个人似乎都忽略了我的问题,只是吐出教科书材料。我正在使用 _Layout.cshtml 文件,而不是常规视图。没有控制器对此采取行动。不过,我已经找到了解决方案,Lorenzo 已经帮我解决了。我为 HtmlHelper 创建了一个扩展方法,现在我可以调用类别了。
-
我不认为每个人都忽略了你的问题。我只是觉得你问错了问题。
标签: asp.net-mvc controller asp.net-mvc-3 razor