4
<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”一书中的示例代码。

此代码适用于 MVC V1 和 MvcContrib。它的作用是呈现“导航:控制器”的“菜单()”视图。由于 ASP.NET MVC V2 包含 Partial() 和 RenderPartial() 功能,我尝试实现它,但这段代码不起作用。我尝试以多种方式对其进行修改,但似乎没有呈现部分视图的重载函数,将其作为参数:1)控制器名称 2)视图名称

我确定我不是第一个以这种方式实现 RenderAction() 的人,因此,必须有一个解决方法。请帮忙。

4

2 回答 2

4

我发现了问题。我总是删除 {controller}/{action} 路由并使用小写 REST (如 URL)自定义我的所有路由。但是对于 Html.RenderAction 来说,有这样的通用路线是很有必要的。我将一般路线添加到路线列表的末尾并且它有效。– 马赫迪 2 月 22 日 14:42

虽然我仍然不明白,这到底是如何工作的,为什么需要烂路线,以及路线的限制是什么。也许我稍后会做一些研究。

于 2010-03-09T17:44:07.573 回答
1

RenderAction在 MVC2 中(此处的文档)。听起来您已经更改了要使用的代码,RenderPartial而是完全不同的。把它改回使用RenderAction,你应该没问题。如果您的版本中没有它,也许您需要更新到最新的测试版?

于 2010-03-09T12:48:42.423 回答