【发布时间】:2013-11-29 20:39:52
【问题描述】:
Razor 局部是否可以相互交流/影响布局?他们是否有可能影响外部的标记——尤其是“上方”——他们自己?
我喜欢 Webforms 中的控件的一点是,它们可以与母版页或彼此“通信”。
例如,如果用户控件需要一些特殊的 CSS,您可以这样做:
Page.Head.Controls.Add(new LiteralControl("<style>[something here]</style>"));
这会在页面的 HEAD 标记中注入一个 STYLE 块。因此,用户控件可以“在”自身“外部”对话——在这种情况下——“在”自身“之上”。即使用户控件位于页面底部,它也可以“向上”页面并影响其他控件和标记。
现在,使用 MVC,假设我有一个部分。该部分需要自定义 CSS。它如何与布局模板对话以告诉它将 CSS 放入 HEAD 标记中?另外,假设这个部分被使用了两次——你如何确保它只使用一次?
我有一个 HeadTagContent 部分(应用程序在 Webforms 中时残留的 ContentPlaceHolder),但即使我在部分中使用它,当部分呈现时我们“低于”该部分,所以它不会做任何事。
我确实有一个 ViewModel 类。我可以为“CustomCss”创建一个属性并从部分设置/附加它(是的,这可能是错误的形式......),然后将它从布局中写入 HEAD 标记。但是,当我的部分执行此操作时,布局已经呈现,这意味着我们“低于” HEAD 标记。
从哲学上讲,我在这里不明白什么?虽然我的 CSS 问题是我的严重问题,但我正在尝试了解更大的点/架构。
【问题讨论】:
标签: asp.net-mvc razor partial-views