我已经添加了3个控制器,其中一个控制器的默认Index视图无法工作。
Works(shows index):
http://localhost:1767/Employees/
http://localhost:1767/Employees/Index
http://localhost:1767/Home/
http://localhost:1767/Home/Index
http://localhost:1767/
http://localhost:1767/Companies/Index
Doesn't work(gives 404 error):
http://localhost:1767/Companies/
1)我创建了一个实体框架类库,从包含员工和公司表的数据库生成。
2)创建一个MVC 3空项目。
3)从MVC项目添加对EF类库项目的项目引用。
4)添加一个控制器,在添加控制器对话框中选择EF模型和其中一个表,并将控制器命名为CompaniesController。
5)然后我想起我需要一个HomeController,所以我添加了另一个控制器,将其命名为HomeController,并再次选择了Companies实体。
6)最后,我添加了一个EmployeesController,选择了Employees实体。
这是我的Global.asax.cs中唯一的路由:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
为什么http://localhost:1767/Companies/的URL不像其他控制器一样默认到索引操作?我做了几个MVC练习项目,似乎总是遇到这个问题。即使没有路由告诉它这样做,员工控制器默认索引也可以正常工作。
编辑:这是我收到的错误信息:
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: /Companies/
编辑:通常我在网上发布示例时不会透露实体或域详细信息的名称,但在这种情况下,公司实际上被称为属性,将名称更改为Properties2以供视图文件夹和控制器使用可以解决问题。因此,如果URL中出现“属性”,它似乎是一种特殊关键字,会破坏默认的索引。