2010-09-10 55 views
1

我有一个呈现传统强类型页面的ASP.NET MVC 2项目,但在其中一些页面上,我也希望使用页面对象来呈现特定区域(div)主页的导航部分。从视图更新母版页

举例来说,如果我有一个客户端对象和相关的强类型查看,我想查看能够在母版页的导航一个div中插入特定的客户端的导航项目。

我在一个不是很优雅的方式通过创建一个的ViewData项目举行客户对象实际上实现这一点 - 这是除了与查看返回客户端对象。然后主页面将采用ViewData对象,如果它不为空,则呈现客户端特定的导航部分。随着不得不处理的不同对象的数量增加,这种做事方式会变得非常难看。

我在寻找的是在页面呈现过程中更新主页面导航中的占位符(即空div)的方法。任何C#,VB.NET或jQuery解决方案欢迎。

回答

0

为什么不像传统上使用Web页面那样使用母版页/占位符?我没有看到如何使用MVC将决定这是做另一种方式。

查看母版:

<div id="menu"> 
    <div>Item1</div> 
    <div>Item2</div> 
    <asp:ContentPlaceHolder ID="MenuContent" runat="server" /> 
</div> 

查看:

<asp:Content ID="Content1" ContentPlaceHolderID="MenuContent" runat="server"> 
    <%=Html.RenderAdditionalMenuItemsSomehow(Model) %> 
</asp:Content> 
+0

一个伟大的建议(为此我做了一个DOH时刻!),它完美的作品时,我有可用的客户对象。 然而事实证明,我需要为客户端显示的一些项目将不包括客户端对象,所以现在我正在测试主页面代码中的ViewContext.Controller以查看它是否是ClientController类型并就此采取行动。 – CrispinH 2010-09-10 16:01:01