C# 如何将数据放入母版页?

C# 如何将数据放入母版页?,c#,asp.net-mvc,master-pages,C#,Asp.net Mvc,Master Pages,如何将ASP.NET MVC中的强类型对象放入母版页 您是否有一个包含母版页信息并为每个视图模型从中继承的ViewModelBase类,还是有更好的方法 我想你要问的是,“我的母版页控制器在哪里?” 看看下面的链接。它解释了如何创建一个“应用程序控制器”,一个可由其他控制器继承的抽象类,以便只需编写一次代码即可将所需的母版页数据推送到视图中 将数据传递到查看母版页: 另外,请查看以下链接,该链接解释了如何在ASP.NET MVC中实现局部视图和子视图: ASP.NET MVC中的部分请求 这正

如何将ASP.NET MVC中的强类型对象放入母版页

您是否有一个包含母版页信息并为每个视图模型从中继承的
ViewModelBase
类,还是有更好的方法

我想你要问的是,“我的母版页控制器在哪里?”

看看下面的链接。它解释了如何创建一个“应用程序控制器”,一个可由其他控制器继承的抽象类,以便只需编写一次代码即可将所需的母版页数据推送到视图中

将数据传递到查看母版页:

另外,请查看以下链接,该链接解释了如何在ASP.NET MVC中实现局部视图和子视图:

ASP.NET MVC中的部分请求

这正是我使用的方法。有一个MasterViewData基类,其中包含可能对所有页面都通用的信息,并用于呈现母版页(在不使用内置身份验证、页面级消息时登录用户)。我的所有其他视图数据类都是从它派生的

我还做了Robert提到的事情:我有一个重写View方法的基本控制器类,该方法实际上负责将一些母版页信息放入viewdata类


我很好奇是否还有其他选择,但这种方法对我来说确实很有效。

我们使用类似的基础ViewData,特别是对于大型面向内容的公共网站,在这些网站上,你有很多常见的UI内容


我们用来注入公共位的技巧是使用ActionFilter在控制器返回的周围注入MasterPageViewModel。这比使用带有重写视图方法的特殊控制器类要干净得多,因为在某些地方您肯定不想要/不需要它。整个组合都比继承更重要。

这样做是否有一个有效的方案?一般来说,视图中应该呈现特定于视图的内容,母版页应该只提供与视图所创建内容相适应的通用元素。也许我完全不在这里,但如果我需要在母版页中添加诸如当前登录的用户名等内容,我想我会使用强类型视图。如果不是通过提供给页面的ViewModel,我该怎么做呢?假设您使用的是标准身份验证方法,例如表单身份验证,那么可以使用“否”,我没有使用标准身份验证。我还想知道一个有效的答案(不仅仅是“视图呈现视图数据”)。我能想到很多场景。()数据驱动菜单/导航(所有页面通用,而不是任何特定视图)()各种登录/用户状态选项(是否登录、新消息、即将到来的密码到期通知)*您是否有任何代码示例Wyatt?我很想知道你是怎么做到的。第一个链接似乎不再起作用了。新的应该是