如何使用控制器和操作在 asp.net mvc 2 中渲染部分视图?

发布于 2024-08-24 05:47:06 字数 649 浏览 6 评论 0原文

<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() 的人,所以,必须有一个解决方法。请帮忙。

<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>

This is a sample code from Steven Sandersons' book "Pro ASP.NET MVC Framework."

This code works with MVC V1 and MvcContrib. What it does, it renders a "Menu()" view of "Nav : Controller". Since ASP.NET MVC V2 includes the Partial() and RenderPartial() functionality, I tried to implement it, but this code doesn't work. I tried to modify it in several ways, but it seems there's no overload function that renders partial views, taking as parameters:
1) Controller name
2) View name

I'm sure I'm not the first person who is implementing RenderAction() in this way, so, there must be a workaround. Please help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南街女流氓 2024-08-31 05:47:06

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

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

I found the problem. I always remove {controller}/{action} route and customize all my routes with lowercase REST like URLs. But for Html.RenderAction it is necessary to have such general route. I added that general route to the end of my routes list and it worked. – Mahdi Feb 22 at 14:42

Although i still don't understand, how EXACTLY this works, why is suck route nessesary, and what are route's constraints. Maybe i will do some research later.

唱一曲作罢 2024-08-31 05:47:06

RenderAction 位于 MVC2 中(文档 在这里)。听起来您已经更改了代码以使用 RenderPartial 来代替,这是完全不同的。将其改回使用 RenderAction 就可以了。如果您的版本中没有它,也许您需要更新到最新的测试版?

RenderAction is in MVC2 (docs here). It sounds like you've changed your code to use RenderPartial instead which is completely different. Change it back to use RenderAction and you should be ok. If you don't have it in your version, perhaps you need to update to the latest beta?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文