访问主页面内容webform vs MVC

时间:2011-11-22 20:02:27

标签: asp.net-mvc-3 razor

我知道您可以通过添加引用然后调用Page.Master来从webform world中的内容页面访问母版页元素。

如何在MVC 3.0 World中完成同样的工作?

3 个答案:

答案 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,我看到我的基本上是你所说的但也许到了一点,操作在这里哈哈:)