从基本控制器渲染动作,获取路径未定义错误

时间:2014-11-22 14:49:40

标签: asp.net-mvc asp.net-mvc-5 attributerouting

我有一个基本控制器,我的所有其他控制器都继承自,基本控制器内部是2 ActionResult,这对我网站上的每个页面都是通用的。当我尝试使用Html.RenderAction从View中调用这些操作中的任何一个时,我得到错误

  

路由表中没有路由与提供的值匹配。

我已检查过,Action设置为public且名称拼写正确。我做错了什么?

致电:@{ Html.RenderAction("SectionNavigation"); }

行动:

[Route("SectionNavigation")] public ActionResult SectionNavigation()

正如您所看到的,我也在使用属性路由。我也尝试更新调用以指定Base作为控制器,但没有改变任何内容。

1 个答案:

答案 0 :(得分:1)

RenderAction方法的第一个参数是操作名称,而不是路径名称。

如果您正在渲染使用控制器生成的视图而不是定义SectionNavigation操作的控制器,则您还必须指定控制器名称:

@Html.RenderAction("SecondNavigation", "YourControllerName").

如果您正在使用区域,则还必须包括区域名称:

@Html.RenderAction("SecondNavigation", "YourControllerName", new { Area = "MyAreaName" }).

请参阅Documentation