Jonas Bergqvist
Nov 9, 2012
  7357
(6 votes)

AmbiguousMatchException in MVC BlockController

Have you ever got the following error in the BlockController for our MVC API?

The current request for action 'Index' on controller type 'x' is ambiguous between the following action methods:
System.Web.Mvc.ActionResult Index(y) on type x
System.Web.Mvc.ActionResult Index(y) on type z

If not, you will probably get it in the future. You get this error if you add an action called “Index” in your controller without overriding the index action in the base class. So please, when using a block controller, override the index action, or you may end up with an exception on your EPiServer Tech day presentation.

Nov 09, 2012

Comments

Fredrik Stolpe
Fredrik Stolpe Oct 28, 2014 09:12 AM

A message from the future: I got this error now and this post helped me, thanks :-)

Jens Qvist
Jens Qvist Oct 21, 2015 03:08 PM

Another message from the future. I got this error and this post helped me also! Thanks! :-D

Glenn Lalas
Glenn Lalas Jan 15, 2016 04:53 PM

Chiming in from 2016 to continue the trend of confirming how helpful this post was.  Thanks!  :)

Noel Sefton
Noel Sefton Feb 5, 2019 11:30 AM

yep, helped me as well... (6 years later)

public ActionResult Index(VeryImportantBlock currentBlock) { /*code in here*/ }

becomes

public override ActionResult Index(VeryImportBlock currentBlock) { /* code in here*/ }

Drew Douglas
Drew Douglas Apr 19, 2020 04:27 AM

This post was written 3 months before I got my first professional programming job and 2 years before I had ever hear of episerver, and it's still relavent 7.5 years later. Thanks @JonasBergvist!

Fredrik Stolpe
Fredrik Stolpe May 20, 2020 08:27 AM

Here again, 6 years later :-)

Please login to comment.
Latest blogs
Creating an admin tool - unused assets

Let's make an admin tool to clean unused assets and see how to extend your favorite CMS with custom tools and menues! We will build a tool step by...

Daniel Ovaska | Apr 15, 2026

Running Optimizely CMS on .NET 11 Preview

Learn how to run Optimizely CMS on the .NET 11 preview with a single-line change. Explore performance gains, PGO improvements, and future-proofing...

Stuart | Apr 15, 2026 |

Your Optimizely Opal Is Probably Burning Carbon It Doesn't Need To

Four patterns Optimizely practitioners could be getting wrong with Opal agents: inference levels, oversized tool responses, missing output...

Andy Blyth | Apr 15, 2026 |

Optimizely CMS 13: A Strategic Reset for Content, AI, and Composable Marketing

Optimizely CMS 13 is not just another version upgrade—it represents a deliberate shift toward a connected, AI-enabled, and API-driven content...

Augusto Davalos | Apr 14, 2026

The 74% Problem: Why Most Companies Are Getting AI Wrong

I’ve seen this before… The pattern. The rush, the excitement, the scramble to adopt something new before anyone has stopped to ask what problem it...

Mark Welland | Apr 14, 2026

Scheduled jobs with parameters

Scheduled jobs is an integral part of most Optimizely solution but the UI has, in my opinon, always been lacking in usability and features. Earlier...

Per Nergård (MVP) | Apr 14, 2026