This is a route that should work:
routes.MapRoute(
"AddComment",
"Events/{id}/AddComment",
new { controller = "Events", action = "AddComment" }
);
You don't need to be using any ActionName attribute on your action for this to work. Just make sure that you have defined this route before your the default route. Also notice that since the {id}
route parameter is not the last part of your route definition it cannot be optional anymore. You should always specify a value for it when generating an route.
For example:
@Html.ActionLink(
"click me",
"AddComment",
"Events",
new { id = "123" },
null
)