我一直在试图找到一种将数据传递到嵌套母版页的方法。我正在使用嵌套母版页,因为它允许我在我的网站上进行第二层导航,然后可以通过其他需要第二层导航的视图进行扩展。
由于某种原因,我无法访问ViewData [“field”]。编译器抛出ViewData不在嵌套母版页的上下文中的错误。而且我也不能使用子操作,它们也不存在于嵌套母版页的上下文中。
这是声明嵌套母版页的方式: <%@ Master Language =“C#”MasterPageFile =“〜/ Views / Shared / Site.Master”AutoEventWireup =“true”CodeBehind =“Curator.master.cs”Inherits =“Atlasweb.Views.Shared.Curator”%&gt ;
我尝试将“Inherits”属性更改为System.Web.Mvc.ViewMasterPage以查看它是否允许我访问ViewData或子操作,但没有运气。
答案 0 :(得分:2)
MSDN here概述了官方方式。
以下是我如何处理我自己的错误,如果它也与你有关。
所以这就是我想到的:原来,当我添加一个新项目时,我选择了“嵌套母版页”。此构造可能比MVC2旧,因为MVC2允许我创建“MasterPage”,然后添加属性MasterPageFile ,我可以指向[parent]母版页来创建嵌套。似乎为我工作。
<%@ Master Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewMasterPage" %>