I'm using ASP.NET MVC 3 (Razor) and have created a Controller named "Controllers" - specifically, the Controller class name is "ControllersController".
Here's a snippet of my "Controllers" Controller:
public class ControllersController : Controller
{
public ActionResult Index()
{
return View();
}
}
In addition to creating the ControllersController class, I created a Razor View (Index.cshtml) that correlates with the ControllersController Index() action. It may be worth noting that I created the Index.cshtml View by right-clicking the Index() method within the Controller and choosing "Add View".
The problem that I am experiencing is, when a browser tries to go to http://localhost/controllers, the following error is thrown:
Server Error in '/' Application.
The resource cannot be found. Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /controllers/
There are two points that I'd like to point out:
- The error can be avoided if the browser explicitly goes to http://localhost/controllers/index
- Controllers that are not named ControllersController don't force the browser to specify the /index action in its URL.
With all the naming conventions in MVC, I'm not surprised that a Controller named Controllers causes some strange behavior. My question is; what do I need to do so that I don't have to specify /index in the browser's URL?