<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