我试图以这种方式在ASP.NET MVC 2 RC2中使用Html.RenderAction:
在菜单控制器中:
[ChildActionOnly]
public ActionResult ContentPageMenus()
{
var menus = _contentPageMenuRepository.GetAll().WithCulture(CurrentCulture);
return PartialView(menus);
}
Run Code Online (Sandbox Code Playgroud)
在我的索引视图中(对于Home控制器的Index操作):
<% Html.RenderAction("ContentPageMenus", "ContentPageMenu");%>
Run Code Online (Sandbox Code Playgroud)
但我总是收到此错误消息:路由表中的路由与提供的值不匹配.
Mem*_*sen 12
像这样添加第三个参数是我的解决方案(在剃刀中):
@{Html.RenderAction("ActionName", "ControllerName", new { area = string.Empty });}
Sam*_*ron 11
MVC Futures曾经允许渲染没有路线的动作.这在ASP.NET MVC2中已经发生了变化.
如果您希望RenderAction正常工作,并希望隐藏您的路线,以便无法公开访问.
globals.asax.cs.[ChildActionOnly]属性装饰您的动作.你的控制器名称是什么?默认情况下,您的路线会发生以下情况.
搜索RenderAction方法中指定的Controller名称,并在该名称后附加"Controller".
调用该Controller中的Action方法并返回View.
因此,通过查看您的代码,将发生以下情况
这假设您没有更改默认路由,也没有添加会影响路由的新路由
| 归档时间: |
|
| 查看次数: |
11061 次 |
| 最近记录: |