<body>
<div id="header">
<div class="title">SPORTS STORE</div>
</div>
<div id="categories">
<% Html.RenderAction("Menu", "Nav"); %>
</div>
<div id="content">
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</div>
</body>
这是Steven Sandersons的书“Pro ASP.NET MVC Framework”的示例代码。如何使用Controller和Action在asp.net mvc 2中渲染部分视图?
此代码适用于MVC V1和MvcContrib。它做了什么,它呈现了“Nav:Controller”的“Menu()”视图。由于ASP.NET MVC V2包含Partial()和RenderPartial()功能,因此我试图实现它,但此代码不起作用。我试图修改它在几个方面,但似乎没有呈现局部视图,以作为参数过载功能: 1)控制器的名字 2)查看名称
我敢肯定,我不是第一人谁在以这种方式实现RenderAction(),所以必须有一种解决方法。请帮忙。
这是因为RenderAction与通过路由最初映射控制器动作时发生的情况更为接近。我同意如果一个人不能暴露路线,但仍然有RenderAction的工作将会很好。与此同时,您只能公开该特定路由,将[ChildActionOnly]放在这些操作上,并且不会有默认路由。正如你所暗示的,在路由约束下,你可以减少路由的存在对你的可用“路由命名空间”(大多数情况下不是问题,而是部分CMS的站点的一个重要考虑因素)的影响。 – Cymen 2010-03-26 18:06:56