我知道您可以通过添加引用然后调用Page.Master来从webform world中的内容页面访问母版页元素。
如何在MVC 3.0 World中完成同样的工作?
答案 0 :(得分:2)
您无法从视图中访问布局中的元素 - 这是MVC而不是Web窗体。
Web表单中没有可以引用和操作的控件。
如果您想在视图中更改布局中的任何内容:
ViewBag
(与此处建议的其他人一样)将值传递到布局(显示它们,将它们用于条件,将它们传递给RenderAction
调用或部分视图,...) 。通过使用公共BaseViewModel
并强烈键入布局,可以完成相同的操作。Rendersection
并在视图中放置section
属性 - 您在该部分中放置的任何内容都将在布局中呈现。答案 1 :(得分:1)
渲染系统在两者之间是不同的。
Razor视图从子视图渲染到父视图,这意味着您的Layout页面将最后呈现。
例如,以下部分来自您的布局页面:
<head>
<title>@ViewBag.Title</title>
</head>
您可以从下面的视图中确定标题:
@{
ViewBag.Title = "Poo";
}
所以这是渲染顺序的教授。
答案 2 :(得分:0)
你不应该这样做。 “主”页面以REVERSE顺序呈现,而不是在Web表单中呈现,因此内容尚未存在。 你为什么试图访问它,也许我们有更好的解决方案?
编辑:对不起tugberk,我看到我的基本上是你所说的但也许到了一点,操作在这里哈哈:)