Alex Rivera | Logout

Html.RenderAction causes "No route in the route table matches the supplied values"

Asked 2010-02-22T13:47:50.487
17

I'm trying to use Html.RenderAction in ASP.NET MVC 2 RC2 in this way:

In Menu Controler:

[ChildActionOnly]
public ActionResult ContentPageMenus()
{
     var menus = _contentPageMenuRepository.GetAll().WithCulture(CurrentCulture);
     return PartialView(menus);
}

And in my Index view (for Index action of Home controller):

 <% Html.RenderAction("ContentPageMenus", "ContentPageMenu");%>

But I always get this error message: No route in the route table matches the supplied values.

Edit
Report

1 Answer

11

MVC Futures used to allow rendering of actions that had no routes. This has changed in ASP.NET MVC2.

If you want RenderAction to work and would like to hide your route so its not publicly accessible.

  1. Add a route for your action in globals.asax.cs.
  2. Decorate your action with the [ChildActionOnly] attribute.
answered 2010-08-24T04:43:54.403

Your Answer