我有一个基本控制器,我的所有其他控制器都继承自,基本控制器内部是2 ActionResult
,这对我网站上的每个页面都是通用的。当我尝试使用Html.RenderAction
从View中调用这些操作中的任何一个时,我得到错误
路由表中没有路由与提供的值匹配。
我已检查过,Action
设置为public
且名称拼写正确。我做错了什么?
致电:@{ Html.RenderAction("SectionNavigation"); }
行动:
[Route("SectionNavigation")]
public ActionResult SectionNavigation()
正如您所看到的,我也在使用属性路由。我也尝试更新调用以指定Base
作为控制器,但没有改变任何内容。
答案 0 :(得分:1)
RenderAction
方法的第一个参数是操作名称,而不是路径名称。
如果您正在渲染使用控制器生成的视图而不是定义SectionNavigation
操作的控制器,则您还必须指定控制器名称:
@Html.RenderAction("SecondNavigation", "YourControllerName").
如果您正在使用区域,则还必须包括区域名称:
@Html.RenderAction("SecondNavigation", "YourControllerName", new { Area = "MyAreaName" }).