如何使用Controller和Action在asp.net mvc 2中渲染局部视图?

时间:2010-03-09 12:29:40

标签: asp.net-mvc partial-views

<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。它做了什么,它呈现了“Nav:Controller”的“Menu()”视图。由于ASP.NET MVC V2包含Partial()和RenderPartial()功能,我尝试实现它,但此代码不起作用。我试图以几种方式修改它,但似乎没有重载函数呈现部分视图,作为参数: 1)控制器名称 2)查看名称

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

2 个答案:

答案 0 :(得分:4)

  

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

虽然我仍然不明白,这是如何运作的,为什么吸吮路线是必需的,以及什么是路线的限制。也许我稍后会做一些研究。

答案 1 :(得分:1)

RenderAction位于MVC2中(文档here)。听起来您已经将代码更改为使用RenderPartial而不是完全不同。将其更改回使用RenderAction,您应该没问题。如果您的版本中没有,可能需要更新到最新的测试版?